指针的自增


看题:

 若已定义 char s[10]; 则在下面表达式中不表示s[1]的地址的是。
A、s+1
B、s++
C、&s[0]+1
D、&s[1]

解析:

c、&s[0]+1取出s[0]的地址再加一 这个一不是说的字节数 好比指针指向下一个地址 也就是s[1]的地址

B、普通指针可以进行++、--运算,常指针不行,指向函数的指针也不行。如有:int a[10],*p=a;,则p++、++p、p--、--p都是合法的,而a++、++a、a--、--a不行,因为a是数组名,是常指针;被const修饰的常指针也不能进行++、--运算,如有int x,*const q=&x;,则q也不能再指向别处,q++、++q、q--、--q都是非法的。指向函数的指针进行++、--操作是没有意义的,因为函数大小不一,一般也不是连续存放,所以对指向函数的指针作++、--操作也是非法的……

思考:&s + 1是什么?

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM