数组的指针和字符串的指针

数组的指针和字符串的指针

ID:37798551

大小:290.31 KB

页数:32页

时间:2019-05-31

上传者:U-145848
数组的指针和字符串的指针_第1页
数组的指针和字符串的指针_第2页
数组的指针和字符串的指针_第3页
数组的指针和字符串的指针_第4页
数组的指针和字符串的指针_第5页
资源描述:

《数组的指针和字符串的指针》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

一、数组的指针1.数组与地址2.数组元素的访问二、字符串指针1.字符串指针的定义2.字符指针与字符数组的区别三、指针作为函数参数1.数组名作为函数参数 2.字符指针作为函数参数第16讲数组的指针和字符串的指针 C语言规定:数组名代表数组(元素)的首地址,即第一个元素的地址。若有:inta[10],*p=a;则:a与&a[0]是等价的指针变量p为数组的指针数组的指针:数组的起始地址,即数组元素的首地址。数组元素的指针:数组元素的地址。一、数组的指针 1.数组与地址对数组的首地址加上偏移量x就可以得到其它元素的地址。例:&a[1]表示数组元素a[1]的地址等价于a+1、p+1&a[x]表示数组元素a[x]的地址等价于a+x、p+x 2.数组元素的访问下标法:用a[i]的形式存取数组元素。地址法:用*(a+i)的形式存取数组元素。指针法:用指针变量p指向数组的首地址,然后通过移动指针存取数组元素。如p=a,p+i。 例a用下标法存取数组元素main() {inta[10],i;for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<10;i++) printf("%d",a[i]);printf(" "); } 例b用地址法存取数组元素main() {inta[10],i; for(i=0;i<10;i++)scanf("%d",a+i);for(i=0;i<10;i++) printf("%d",*(a+i));printf(" "); } 数组元素的访问举例例c用指针法存取数组元素。(即通过指针指向数组的首地址,然后通过移动指针存取数组元素。)main() {inta[10],*p,i;for(i=0,p=a;i<10;i++)scanf("%d",p+i);for(i=0,p=a;i<10;i++) printf("%d",*(p+i)); printf(" "); }main() {inta[10],*p;for(p=a;psum(int*q,intn){inti,s=0;int*t;t=q;/*t与q都指向数组a的第一个元素*/for(i=0;istring_cut(char*str,charc){for(;*str!=''&&*str!=c;str++);puts(str);} voidmain(){charstring[20]="Beijing";charch;scanf("%c",&ch);string_cut(string,ch);} 例:有3个字符串存放在一维指针数组中,编写一个程序,找出3个串中ASCII码最大的一个字母并输出。分析:类似于二维数组,在每个字符串中查找最大的字母。 #includecharmax(char*s[]){inti;charch,*p;ch=s[0][0];for(i=0;i<3;i++){p=s[i];for(;*p;p++)if(*p>ch)ch=*p;}returnch;} voidmain(){char*str[]={“sfawe”,”fghj”,”abcrs”},c;c=max(str);printf(“Max=%c ”,c);}程序运行结果为:Max=w

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭