指针总结使用

指针总结使用

ID:28041211

大小:4.14 MB

页数:78页

时间:2018-12-07

指针总结使用_第1页
指针总结使用_第2页
指针总结使用_第3页
指针总结使用_第4页
指针总结使用_第5页
资源描述:

《指针总结使用》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、intfloatb;charc;char*r;r=&c;氺(1)氺a氺”(NULL)(3)“NULL”“stdio.h”。main()scanf(no/odH%df【法二】main(){inta,*p=scanf(’’%(%&a;/*定义时没有取内容的含义*/(1)p(2)aPa(4)氺:(1)(2)与p1.]】❖a/**/p=a;此方式被称为为”,以前的方法被称231氺Oa[l]<^>a[2]Oa[3]2、Oa[4]o*(a+l)*(a+2)O^(a+3)O*(a+4)(2)main(){floata[3]={1.5,6.9,

2、9.05};输出6.9例2.main(){floata[3]={1.5,6.9,9.05};float*p=a;ft%fj薄E&LSpas雌a【ll窆3.main(){floata【31l1.5,6.9,9.05}float*p=a;ft输出1.5(之后,a[0]由1.5变成2.5)例4.main(){floata[3]={1.5,6.9,9.05};float*p=a;printf(’’%f’’,++(*p));s++(田«»胆ST1g>

3、’Hello’’;(2)HHello1斤Zr里3、(1)char*p;chara[10];strcpy(p,’’Hello");strcpy(a,’’Hello’’);前者错,因为p未指向任何合法空间,就用strcpy函数给p所指空间赋值是危险的。后者是正确的,但要注意,在定义时要(2)nHello”;chara[10];a=nHello";X后者错,因为a是数组名,是数组首地址,是常量,不可以出现在赋值号左边。前者是正确的,先让字符串常量占据合法的连续空间,再将该空间的首地址赋值给指针变量。⑶char*p,a[10];chara[

4、10];p=a;strcpy(p9"Hello’’);7strcpy(a,nHellon);7二者都正确,完全等价,都是将字符串常量赋值给数组a对应的空间,前者只是先让p指向数组a对应的空间。(4)char^p,a[10];chara[10];P=a;p=nHellO”;Vstrcpy(a,’’Hello’’);/虽然二者都正确,但后者是将字符串常量赋值给数组a对应的空间,前者只是先让p指向数组a对应的空间,然后让字符串常量占据另外合法的连续空间,再将该合法空间的首地址赋值给P,此时p已不指向数组a了^(5)一定看笔记指针最后一点,

5、标记pill设有如下定义和赋值:inta[4][3]={l,2,3,4,5,6,7,8,9,10,ll,12};q=a;则有下列存储关系:123456pP+1)789101112q+3前面介绍过,C语言允许将一个二维数组分解为多个一维数组来处理。因此数组a可分解为四个一维数组,即a[0]、a[l]、a[2]、a[3],每一个一维数组又含有三个元素,因此,a[0]、a[l]、a[2]、a[3]是一维数组的名字,是对应一维数组的首地址。而C语言规定,数组名就是数组的首地址,因此,a是二维数组的首地址。&a[O][O]SPp显然也是二维数

6、组的首地址,那么与a有什么区别呢?二者的值相等,根据上图的假设,地址值均为101,但p+1指向下一个元素a[0][l],值为103,而a+1指向下一行,值为107。由此,我们通常将P称为列指针(同指向变量的指针),a称为呼丁指针。但是a是数组名,是常量,于是,可以按如下格式定义一个二维数组对应的2、inta[4][3]={l,2,3,4,5,6,7,8,9,10,ll,12};q=a;a[0][0]O*(a+i)设有上例的定义和赋值,则二维数组元素的引用如下:下标法列指针表示行指针表示a[0][0]*p或p[0]或*(*(q+0)+

7、0)或q[0][0]a[0][l]*(p+l)或p[l]*(*(q+0)+l)或q[0][l]a[0][2]*(p+2)或p[2]*(*(q+0)+2)或q[0][2]a剛*(p+i*3+j)或p[i*3+j]*(*(q+i)+j)或q[i][j]a[3][2]*(p+ll)或p[ll]*(*(q+3)+2)或q[3][2]五、其中类型说明符为指针值所指向的变量的类型。串o#includemain(){char:i:p[5]={nH]char*t;for(i=0;i<,’’C’’,nbye’’,,,God,,,,,

8、saven};for(i=0;i<5;i++)【注意】指针数组与二维数组的行指针变量的区别。二维数组的行指针变量是单个的变量,其定义形式中“(*指针变量名)”两边的括号不可少。而指针数组表示的是多个指针,其定义形式中“*数组名”两边不

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

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

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