.若有以下定义和语句: int a[4]={0,1,2,3},*p; p=&a[2]; 则++(*p)的值是___3__。这个答案为什么不是2

2024年12月03日 01:55
有3个网友回答
网友(1):

p=&a[2], p指向了a的下标为2的元素,C语言的数组下标是从0开始的,下标为2指的是第三个元素,2,++(*p)将该元素增加1,2+1=3

网友(2):

a
因为
p+=2

p=0+2
,指的是数组中的第二个元素。而*(p++)
是p+1
,*(p++)表示第三个元素的值。故选a。

网友(3):

int a[4]={0,1,2,3},*p;
p=&a[2]=2;
再执行(*p)=2;
之后++(*p)=3;