记录学习(标记,明天继续补充)
1、以下程序输出的结果是()
void foo(int[][3]);
Main()
{
int a[3][3] = {{1,2,3},{4,5,6},{7,8,9}};
foo(a);
printf("%d\n",a[2][1]);
}
void foo(int b[][3])
{
++b;
b[1][1] = 9;
}
A、7 B、8 C、9 D、5
解析:选C,在foo函数里,执行了++b,对二维数组来说,进行了行的偏移,故现在b从第0行指向了第1行;再对b[1][1]进行赋值,此时应该站在偏移后的位置去看,故对二维数组a里的8进行了覆盖操作,变成了9;最后取值a[2][1],取出来的自然是修改过的值9,故选C。