指针的自增

看题:

 若已定义 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是什么?

猜你喜欢

转载自www.cnblogs.com/y4247464/p/12565326.html