这个怎么看的
答案为D
A. *w[1] +1 的运算顺序是(*(w[1]))+1;w[1]得到第二行数组的指针,*(w[1])取出第二行第一个元素,即2;最后再加1,最终结果为3;改为*(w[1]+1)就对了
B. p++, *(p+1); p++将指针指向第2行,p+1将指针指向第三行,最后*(p+1)返回的是第三行的指针;改为p++, *(*p + 1)就对了
C. w[2][2],这个明显错误,就不解释了。
#include<stdio.h>
int main(){
int w[3][4] = {{0,1},{2,4},{5,8}};
int (*p)[4] = w;
printf("*w[1]+1 = %d\n",*w[1]+1);
printf("w[2][2] = %d\n",w[2][2]);
printf("p[1][1] = %d\n",p[1][1]);
p++;
printf("*(p+1) = %d\n",*(p+1));
}