23指针-指针与数组_第1页
23指针-指针与数组_第2页
23指针-指针与数组_第3页
23指针-指针与数组_第4页
23指针-指针与数组_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1指向数组元素的指针变量例 int array10; int *p; p=&array0; / p=array;或 int *p=&array0;或 int *p=array;array0array1array2array3array9.整型指针p&array0p数组名是表示数组首地址的地址常量 指针与数组2指针变量的赋值运算p=&a; (将变量a地址p)p=array; (将数组array首地址p)p=&arrayi; (将数组元素地址p)p1=p2; (指针变量p2值p1)指针变量与其指向的变量具有相同数据类型3pi p id (i为整型数,d为p指

2、向的变量所占字节数)p+, p-, p+i, p-i, p+=i, p-=i等若p1与p2指向同一数组,p1-p2=两指针间元素个数(p1-p2)/dp1+p2 无意义例 p指向int型数组,且p=&a0; 则p+1 指向a1例 int a10; int *p=&a2; p+; *p=1;例 int a10; int *p1=&a2; int *p2=&a5; 则:p2-p1=3;a0a1a2a3a4a5a6a7a8a9a数组pp+1,a+1p+i,a+ip+9,a+91指针的算术运算:例 p指向float数,则 p+1 p+1 44若p1和p2指向同一数组,则

3、p1p2 表示p1指的元素在后p1=p2 表示p1与p2指向同一元素若p1与p2不指向同一数组,比较无意义指针变量的关系运算5a0a1a2a3a9.aa+9a+1a+2地址元素下标法a0a1a2a9a0a1a2a3a9.pp+9p+1p+2地址元素指针法*p*(p+1)*(p+2)*(p+9) 变址运算符ai *(a+i)ai pi *(p+i) *(a+i)*a*(a+1)*(a+2)*(a+9)p0p1p2p96a0a1a2a3a4main() int a5,*pa,i; for(i=0;i5;i+) ai=i+1; pa=a; for(i=0;i5;i+) printf(*(pa+%d)

4、:%dn,i,*(pa+i); for(i=0;i5;i+) printf(*(a+%d):%dn,i,*(a+i); for(i=0;i5;i+) printf(pa%d:%dn,i,pai); for(i=0;i5;i+) printf(a%d:%dn,i,ai);12345pa例 数组元素的引用方法7例 int a=1,2,3,4,5,6,7,8,9,10,*p=a,i; 数组元素地址的正确表示:(A)&(a+1) (B)a+ (C)&p (D)&pi数组名是地址常量p+,p- ()a+,a- ()a+1, *(a+2) ()8例 void main() int

5、a =5,8,7,6,2,7,3; int y,*p=&a1; y=(*-p)+; printf(“%d ”,y); printf(“%d”,a0); 输出:5 6pp58762730123456a6例 注意指针变量的运算9main() int i,*p,a7; p=a; for(i=0;i7;i+) scanf(%d,p+); printf(n); for(i=0;i7;i+,p+) printf(%d,*p);p=a;pp58762730123456apppppp指针变量可以指到数组后的内存单元例 注意指针的当前值10int *p 与 int q10 数组名是指针(地址)常量p=q

6、; p+i 是qi的地址数组元素的表示方法:下标法和指针法, 即若p=q, 则 pi qi *(p+i) *(q+i) 一级指针变量与一维数组的关系11指针与字符串字符串表示形式 用字符数组实现例 main( ) char string=“I love China!”; printf(“%sn”,string); printf(“%sn”,string+7); IloveChistring0string1string2string3string4string5string6string7string8string9stringstring10string11string12string13n!

7、a012例 main( ) char *string=“I love China!”; printf(“%sn”,string); printf(“%sn”,string+7); IloveChistringn!a0字符指针初始化:把字符串首地址赋给string char *string; string=“I love China!”;string用字符指针实现13例 用函数调用实现字符串复制(1)用字符数组作参数aIamateaceh0r.fromabyuarasutndetoboet.0Iaaeceh0r.t.0mtavoid copy_string(char from,char to) int i=0; while(fromi!=0) toi=fromi;i+; toi=0;main() char a50=I am a teacher.; char b50=You are a

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论