[工学]第16讲 数组的指针和字符串的指针ppt课件.ppt

[工学]第16讲 数组的指针和字符串的指针ppt课件.ppt

ID:59413128

大小:84.50 KB

页数:32页

时间:2020-09-19

[工学]第16讲  数组的指针和字符串的指针ppt课件.ppt_第1页
[工学]第16讲  数组的指针和字符串的指针ppt课件.ppt_第2页
[工学]第16讲  数组的指针和字符串的指针ppt课件.ppt_第3页
[工学]第16讲  数组的指针和字符串的指针ppt课件.ppt_第4页
[工学]第16讲  数组的指针和字符串的指针ppt课件.ppt_第5页
资源描述:

《[工学]第16讲 数组的指针和字符串的指针ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、一、数组的指针1.数组与地址2.数组元素的访问二、字符串指针1.字符串指针的定义2.字符指针与字符数组的区别三、指针作为函数参数1.数组名作为函数参数 2.字符指针作为函数参数第16讲数组的指针和字符串的指针C语言规定:数组名代表数组(元素)的首地址,即第一个元素的地址。若有:inta[10],*p=a;则:a与&a[0]是等价的指针变量p为数组的指针数组的指针:数组的起始地址,即数组元素的首地址。数组元素的指针:数组元素的地址。一、数组的指针1.数组与地址对数组的首地址加上偏移量x就可以得到其它元素的地址。例

2、:&a[1]表示数组元素a[1]的地址等价于a+1、p+1&a[x]表示数组元素a[x]的地址等价于a+x、p+x2.数组元素的访问下标法:用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

3、(""); }例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

4、++) printf("%d",*(p+i)); printf(""); }main() {inta[10],*p;for(p=a;p

5、首地址&a[i]a+ip+i一维数组下标为i的元素地址a[0]*a*p一维数组下标为0的元素的值a[i]*(a+i)*(p+i)一维数组下标为i的元素的值注意:数组名是一个常量,不允许重新赋值。指针变量是一个变量,可以重新赋值。p+i和a+i均表示数组元素a[i]的地址,均指向a[i]。*(p+i)和*(a+i)均表示p+i和a+i所指对象的内容,即a[i]。*p++:等价于*(p++)。其作用:先得到*p,再使p=p+1。(*p)++:表示将p所指向的变量(元素)的值加1。即等价于a[i]++。例:inta[

6、5]={0,2,4,6,8},*p;p=a+2;(*p)++;printf("%d",*p);程序段输出为:5例main(){inta[5]={0,2,4,6,8},*p,x;p=a;(*p)++;p=a+1;++(*p);p=a+2;(*p)--;p=a+3;--(*p);for(x=0;x<=4;x++)printf("%d",a[x]);printf("");}程序运行结果:13358指向数组元素的指针也可以表示成数组的形式,即允许指针变量带下标,如*(p+i)可以表示成p[i]。但需注意,如果p

7、不指向a[0],则p[i]和a[i]是不一样的。如p=a+3;由于p指向a[3],所以p[3]就相当于a[6]而不是a[3]。这种方式容易出错,一般不提倡使用。字符串的处理是用字符型数组来实现的。用char型数组处理的字符串都可以用char型指针来处理。通常把char型指针称为字符串指针或字符指针。二、字符串指针在程序中定义一个字符指针变量,并将字符串的首地址赋给它,然后通过字符指针变量来访问字符串。例如:charstr[]="Cprogramming";char*p;p=str;或:char*str="Cpr

8、ogramming";1.字符串指针的定义例:/*用字符数组实现字符串操作*/main() {charstr[]="WelcometostudyC!"; inti; printf("%s",str); for(i=0;i<=7;i++) printf("%c",str[i]); printf(""); }程序运行结果为:WelcometostudyC! Welcome例/*用字

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

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

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