- 1、本文档共55页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
例如: char c[4][8]={Fortran,COBOL,BASIC,Pascal}; char *cp[4]={c[0],c[1],c[2],c[3]}; char *str[5]={int,long,char,float,double}; int a[2][3]; int *p[2]={a[0],a[1]}; 8.2 指针与数组 8.2.3 指针数组 2. 指针数组初始化 cp C 数 组 cp[0] F o r t r a n \0 cp[1] C O B O L \0 cp[2] B A S I C \0 cp[3] P a s c a l \0 例如: char c[4][8]={Fortran,COBOL,BASIC,Pascal}; char *cp[4]={c[0],c[1],c[2],c[3]}; char *str[5]={int,long,char,float,double}; int a[2][3]; int *p[2]={a[0],a[1]}; str[0] i n t \0 str[1] l o n g \0 str[2] c h a r \0 str[3] f l o a t \0 str[4] d o u b l e \0 【例8.13】用0~6分别代表星期日至星期六,当输入其中任意一个数字时,输出相应英文单词。 main( ) { char *weekname[7]={Sunday,Monday,Tuesday, Wednesday,Thursday,Friday,Saturday}; int week; printf(Enter week No.: ); scanf(%d,week); if (week=0 week7) printf(week No.%d —— %s\n,week,weekname[week]); } 8.2 指针与数组 8.2.3 指针数组 3. 利用字符指针数组处理多个字符串 利用字符指针数组处理长度不等的字符串,可节省存储空间。 8.2 指针与数组 8.2.4 多级指针 1. 二级指针变量的定义 整型值 整型变量 整型变量地址 一级指针变量 一级指针变量地址 二级指针变量 如果一个指针的目标变量是一个指针类型变量,则此指针为指向指针的指针变量,也称为多级指针变量。 二级指针变量定义的一般形式: 数据类型标识符 **指针变量名; 其中“**指针变量名”相当于*(*指针变量名),在括号中定义了一个指针变量,括号外的“*”,说明指针变量(即二级指针)的目标变量是一个指针类型数据,“数据类型标识符”是目标变量(即一级指针)所指向的数据的类型,也就是最终目标变量的类型。例如: int a, *p, **pp; 8.2 指针与数组 8.2.4 多级指针 2. 二级指针变量初始化 a的内容 a a p p pp 例如: int a, *p=a, **pp=p; 、*p 、**pp 、*pp 8.2 指针与数组 8.2.4 多级指针 【例8.16】利用二级指针输出字符串。 main( ) { static char *name[ ]={Zhang,Wang,Li,}; char **pp=name; while (**pp!=\0) printf(%s\n,*pp++); } name Z h a n g \0 W a n g \0 L i \0 \0 pp pp pp pp pp pp pp *(*pp+1)=h、*(*p+2)=a Zhang Wang Li 8.3 指针与函数 8.3.1 指针变量作函数参数 1. 变量的指针作函数参数 【例8.17】输入3个整数,按从小到大顺序输出。 void swap(int *x1, int *x2) { int t; t=*x1;*x1=*x2;*x2=t; return; } void main( ) { int a,b,c; scanf(%d%d%d,a,b,c); if (ab) swap(a,b); if (ac) swap(a,c); if (bc) swap(b,c); printf(%d,%d,%d\n,a,b,c); } 7 5 9 5, 7, 9 7 a 5 b
文档评论(0)