- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
指针变量的运算⒈指针变量运算的特点⒉指针变量的增1、减1运算⒊指针变量与整数的加减运算⒋指针变量的相减运算⒌指针变量的比较9.5指针变量的运算
1.指针变量运算的特点
在C语言中允许指针变量进行的运算包括:
(1)增1运算。
(2)减1运算。
(3)指针变量与整数的加减运算。
(4)指针变量的相减运算。
(5)指针变量的比较运算。
例如:
charc,*cp=c;
shorti,*ip=i;
floatf,*fp=f;
doubled,*dp=d;
cp=cp+1;/*在cp所存放的地址值上加1个字节*/
ip=ip+1;/*在ip所存放的地址值上加2个字节*/
fp=fp+1;/*在fp所存放的地址值上加4个字节*/
dp=dp+1;/*在dp所存放的地址值上加8个字节*/
2.指针变量的增1、减1运算
(1)指针变量的增1运算。
p++或++p
运算完成后,指针变量就指向原来对象的下一个同类型对象的地址。
(2)指针变量的减1运算。
p??或??p
指针变量指向原来对象的上一个同类型对象的地址。(3)运算特点。
y=*p++;或y=*(p++);
这两句是等价的。
观察如下运算:假定p=a[i];
y=(*p)++;相当于y=a[i];a[i]=a[i]+1;
y=++(*p);或y=++*p;相当于a[i]=a[i]+1;y=a[i];
y=*++p;或y=*(++p);相当于p=p+1;y=a[i+1];3.指针变量与整数的加减运算
例如:
p=p+i;
p=a;若执行p=p+i;则p指向a[i]。
p=p-i;
若p=a[i+1];执行p=p?i;则p指向a[1]。
4.指针变量的相减运算
对于两个相同类型的指针变量p1与p2,如果它们分别指向同一数组中不同元素时,p1?p2的值表示指针变量p1与指针变量p2之间的数组元素个数。
例如:p=a[i];则p?a;得到的结果为i。
5.指针变量的比较
如果两个指针变量的类型相同,且均指向同一数组的元素,那么它们之间是可以进行比较的。
例如,对于定义的两个指针变量p和q,表达式:
pq
表示当指针变量p指向的数组元素在指针变量q指向的数组元素之前时为真,否则为假。
前面的学习知道,指针变量是一种指向特定元素(地址)的变量,既然属于变量,那么自然可以进行变量的操作。但由于指针变量本身存放的是面向内存的某个地址,所以有关指针变量的运算是很有限的。一般来说,在C语言中允许指针变量进行的运算包括:这是容易理解的,指针变量作为一个内存的地址变量,诸如乘、除、移位、相加,以及与浮点数的相加或相减操作显然是没有任何实际意义的。*指针变量运算是一种地址运算,它的运算还与地址中存放的元素的长度(数据长度)有关。指针变量运算中一个很重要的特点是,指针变量加1,并不是指针变量所在的地址加1,而是指该指针变量所指的变量的地址加1个数据长度。其实,凡是有关指针变量的算术运算,均是根据指针变量的具体类型而进行相应操作的。*有关指针变量的增1运算“++”和减1运算“??”,其含义与整型变量的增1和减1运算是有区别的。如果我们已经定义了指针变量p,它的增1运算的具体格式如下:运算完成后,指针变量就指向原来对象的下一个同类型对象的地址。具体地说,如果p指向数组元素a[i],那么经过p++或++p运算后,指针变量p将指向下一个数组元素a[i+1]。经过减1运算后,指针变量指向原来对象的上一个同类型对象的地址。如上所述,如果p指向数组元素a[i],则p??或??p后,p将指向上一个数组元素a[i?1]。*因为运算符“++”、“??”、“*”的结合顺序都是从右向左的,所以加不加括号是不影响运算顺序的。若p指向a[i],则上面语句的操作是:先将p所指向的变量值a[i]赋给y,然后再进行p=p+1运算,即p指向a[i+1]。*指针变量加上或减去一个整数i,其所得结果仍然是指针类型。这种运算的具体意义是,改变指针变量的指向,使它指向当前所指基本类型后(或前)的第i个元素的地址。表示指针变量p向后移动了i个相同类型的对象。具体而言,如果p指向a[0],则执行p=p+i后表示指针p从当前位置向后移动了i
您可能关注的文档
- 《职业发展与就业指导》课件——10模拟群体面试.pptx
- 《职业发展与就业指导》课件——16.职场进阶:职场人际网络的构建与优化.pptx
- 《职业发展与就业指导》课件——第八章面试礼仪.pptx
- 《职业发展与就业指导》课件——第二章 认识自我之性格探索.pptx
- 《职业发展与就业指导》课件——第九章 面试常见问题及回答技巧.pptx
- 《职业发展与就业指导》课件——第六章本专业就业形势分析.pptx
- 《职业发展与就业指导》课件——第七章 如何制作简历.pptx
- 《职业发展与就业指导》课件——第三章 自我认知之价值观与兴趣探索.pptx
- 《职业发展与就业指导》课件——第十二章-应届生毕业流程及其他就业去向.pptx
- 《职业发展与就业指导》课件——第十四章—社保相关知识.pptx
最近下载
- 刺绣教程教案.pdf VIP
- 统编版语文四年级下册《灰尘的旅行》导读课 公开课一等奖创新教学设计.pdf VIP
- 《城市轨道交通与通信信号系统》.doc VIP
- 2025年青海省西宁市第十二中学中考一模数学试卷(原卷版+解析版).docx VIP
- 项目融资案例(范本模板).pdf
- 雅马哈船外机二冲程85A(688-28197-5J-11)英文维修手册.pdf VIP
- PHILOS肱骨近端锁定接骨板介绍.ppt
- 雅马哈船外机二冲程E115A(61U-28197-5H-11)英文维修手册.pdf VIP
- 雅马哈船外机二冲程E48C(697-28197-5K-11)英文维修手册.pdf VIP
- 雅马哈船外机二冲程E40X(66T-28197-5F-11)英文维修手册.pdf VIP
文档评论(0)