int a[]={1,2,3,4}; int *b=a; *b+=2; *(b+2)=2; b++; printf("%d,%d\n",*b,*(b+2));
1,3
1,2
2,4
3,2
*b=a a数组名代表数组首地址,b指向了第一个元素1
*b+=2 相当于*b=*b+2=3,然而此时*b仍指向第一个元素,即数组第一个元素由1变为3
*(b+2)=2 相当于a[2]=2,即第三个元素由3变为2
b++ 此时b指向第二个元素
所以*b就为2,*(b+2)也就指向第四个元素为4
这道题你会答吗?花几分钟告诉大家答案吧!
扫描二维码,关注牛客网
下载牛客APP,随时随地刷题