首页 > 编程语言 > 详细

[C++程序设计]指向数组元素的指针

时间:2014-07-21 14:01:57      阅读:415      评论:0      收藏:0      [点我收藏+]

如果先使p指向数组a的首元素(即p=a),则:


(1) p++(或p+=1)。使p指向下一元素,即a[1]。 如果用*p,得到下一个元素a[1]的值。

(2) *p++。由于++和*同优先级,结合方向为自右而 左,因此它等价于*(p++)。作用是: 先得到p指向 的变量的值(即*p),然后再使p的值加1。例6.5(3)程
序中最后一个for语句: for(p=a;p<a+10;p++) cout<<*p;
可以改写为
for(p=a;p<a+10;) cout<<*p++;


(3) *(p++)与*(++p)作用不同。前者是先取*p值,然 后使p加1。后者是先使p加1,再取*p。若p的初值 为a(即&a[0]),输出*(p++)得到a[0]的值,而输 出*(++p)则得到a[1]的值。


(4) (*p)++表示p所指向的元素值加1,即 (a[0])++,如果a[0]=3,则(a[0])++的值为4。注意: 是元素值加1,而不是指针值加1。


(5) 如果p当前指向a[i],则
*(p--) 先对p进行“*”运算,得到a[i],再使p减1,
p指向a[i-1]。
*(++p) 先使p自加1,再作*运算,得到a[i+1]。 *(--p) 先使p自减1,再作*运算,得到a[i-1]。
将++和--运算符用于指向数组元素的指针变量十分 有效,可以使指针变量自动向前或向后移动,指向 下一个或上一个数组元素。例如,想输出a数组 100个元素,可以用以下语句:
p=a;
while(p<a+100) cout<<*p++;

p=a;
while(p<a+100) {cout<<*p;
p++;}
在用*p++形式的运算时,很容易弄错,一定要十分 小心,弄清楚先取p值还是先使p加1。

[C++程序设计]指向数组元素的指针,布布扣,bubuko.com

[C++程序设计]指向数组元素的指针

原文:http://www.cnblogs.com/galoishelley/p/3858222.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!