指向字符串的指针和二级指针

上传人:mg****85 文档编号:49539536 上传时间:2018-07-30 格式:PPT 页数:13 大小:216KB
返回 下载 相关 举报
指向字符串的指针和二级指针_第1页
第1页 / 共13页
指向字符串的指针和二级指针_第2页
第2页 / 共13页
指向字符串的指针和二级指针_第3页
第3页 / 共13页
指向字符串的指针和二级指针_第4页
第4页 / 共13页
指向字符串的指针和二级指针_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《指向字符串的指针和二级指针》由会员分享,可在线阅读,更多相关《指向字符串的指针和二级指针(13页珍藏版)》请在金锄头文库上搜索。

1、第第8 8章章 指指 针针C C语言程序设计语言程序设计11)在指针变量初始化时。格式是:char *=例如:char *ptr=“beijing is a beautiful city” 2)在程序中直接将字符串常量赋给一个字符型指针变 量.格式是:char *=例如:char *p;p=“it is a very good”;8.2指向字符串的指针变量1. 1. 让一个字符指针变量指向字符串的方法让一个字符指针变量指向字符串的方法 【例8.1】分析下列程序的两条puts()语语句,分别输别输 出 什么?#include “stdio.h”main()char *ptr=“beijing i

2、s a beautiful city”;puts(ptr);ptr=“it is very good”;puts(ptr);8.2 指针与数组 8.2.2 8.2.2 指向字符串的指针变量指向字符串的指针变量Beijing is a beautiful city It is a very good【例】通过初始化使指针指向一个字符串。main( ) char str1 =“Good morning!“;char *str2=“Good night!“;printf(“%sn“,str1);printf(“%sn“,str2);8.2 指针与数组 8.2.2 8.2.2 指向字符串的指针变量指向

3、字符串的指针变量2. 2. 指向字符串的指针变量指向字符串的指针变量 的定义及初始化的定义及初始化 字符串的两种表示方式:字符数组表示方式,字符串存放在一维数组中 ,引用时用数组名。字符指针变量表示方式,字符指针变量存放字 符串的首地址,引用时用指针变量名。Good morning!Good night!【例】利用指针变量输入输出字符串。#includemain( ) char c80,*str;str=c;gets(str);puts(str);8.2 指针与数组 8.2.2 8.2.2 指向字符串的指针变量指向字符串的指针变量3. 3. 字符串的输入输出字符串的输入输出 使用字符串输入输出

4、函数gets和puts; 在scanf和printf函数中使用 %s格式实现。 输入字符串时,函数参数:数组名、存有数组名的指 针变量; 输出字符串时,函数参数:数组名、存有字符串首地 址的指针变量。 I love China! I love China! 【例】编编写一个程序,从键盘键盘 接收一个字符串.利 用指针扫视针扫视 ,统计统计 出字符串的长长度,并打印输输出思路:1、为为了允许许字符串中出现现空格,使用函数gets()来接收 输输入信息,并用指针变针变 量来指向该该字符串.、不断的对对指针针做运算,使其沿着字符串“走” 下去。只要该该指针针所指元素不等于字符串结结束符“0”, 计计

5、数 工作就一直进进行。8.2 指针与数组 8.2.2 8.2.2 指向字符串的指针变量指向字符串的指针变量#include“stdio.h“ main( ) char *s;int k=0;printf(“please enter a string:“);gets(s) ; 输输入字符串,并由s指向它while(*s!=0) k+; 进进行计计数s+; 使指针针指向下一个元素printf(“the length of s is %dn“,k);8.2 指针与数组 从从mm位置读取位置读取n n个字符送到个字符送到c c数组数组 要求位置要求位置m m和长度和长度n n大于大于0 0 指针数组定

6、义的一般形式:数据类型标识符 *数组名元素个数;在这个定义中由于“ ”比“*”的优先级高,所以数 组名先与“元素个数”结合,形成数组的定义形式, “*”表示数组中每个元素是指针类型,“数据类型标识符 ”说明指针的目标变量的数据类型。例如:int *ip10;char *cp5;8.2 指针与数组 8.2.3 8.2.3 指针数组指针数组1. 1. 指针数组的定义指针数组的定义 指针数组就是数组中的每个元素均为指针类型 例如: char c48=“Fortran“,“COBOL“,“BASIC“,“Pascal“; char *cp4=c0,c1,c2,c3; char *str5=“int“,

7、“long“,“char“,“float“,“double“; int a23; int *p2=a0,a1;8.2 指针与数组 8.2.3 8.2.3 指针数组指针数组2. 2. 指针数组初始化指针数组初始化 cpC数组cp0Fortran0cp1COBOL0cp2BASIC0cp3Pascal0例如: char c48=“Fortran“,“COBOL“,“BASIC“,“Pascal“; char *cp4=c0,c1,c2,c3; char *str5=“int“,“long“,“char“,“float“,“double“; int a23; int *p2=a0,a1;str0in

8、t0str1long0str2char0str3float0str4double0【例8.13】用06分别代表星期日至星期六,当输入其中任意 一个数字时,输出相应英文单词。main( ) char *weekname7=“Sunday“,“Monday“,“Tuesday“,“Wednesday“,“Thursday“,“Friday“,“Saturday“;int week;printf(“Enter week No.: “);scanf(“%d“,if (week=0 8.2 指针与数组 8.2.3 8.2.3 指针数组指针数组3. 3. 利用字符指针数组处理多个字符串利用字符指针数组处理

9、多个字符串 利用字符指针数组处理长度不等的字符串,可节省 存储空间。 8.2 指针与数组 8.2.4 8.2.4 多级指针多级指针1. 1. 二级指针变量的定义二级指针变量的定义 整型值整型变量整型变量地址一级指针变量一级指针变量地址二级指针变量如果一个指针的目标变量是一个指针类型如果一个指针的目标变量是一个指针类型 变量,则此指针为变量,则此指针为指向指针指向指针的指针变量,也称的指针变量,也称 为多级指针变量。为多级指针变量。 二级指针变量定义的一般形式:数据类型标识符 *指针变量名;其中“*指针变量名”相当于*(*指针变量名), 在括号中定义了一个指针变量,括号外的“*”,说明 指针变量

10、(即二级指针)的目标变量是一个指针类型数 据,“数据类型标识符”是目标变量(即一级指针)所 指向的数据的类型,也就是最终目标变量的类型。例如 :int a, *p, *pp;8.2 指针与数组 8.2.4 8.2.4 多级指针多级指针2. 2. 二级指针变量初始化二级指针变量初始化 a的内容a、* *p p 、*pppp、* *pppp8.2 指针与数组 8.2.4 8.2.4 多级指针多级指针【例8.16】利用二级指针输出字符串。main( ) static char *name =“Zhang“,“Wang“,“Li“,“;char *pp=name;while (*pp!=0)printf(“%sn“,*pp+);name Zhang0Wang0Li00pppppppppppppppppppppp*(*(*pp+1)=hpp+1)=h、*(*p+2)=a*(*p+2)=aZhangZhangWangWangLiLi

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 建筑资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号