第5题:考查多维数组与指针
#include <stdio.h>
#include <stdlib.h>
void foo(int [][3] );
int main()
{
int a [3][3]= { { 1,2,3} , { 4,5,6},{7,8,9}};
foo(a);
printf("%d \n", a[2][1]);
return 0;
}
void foo( int b[][3])
{
++b;
b[1][1]=9;
}
这段程序的输出是:
(a)8 (b) 9 (c) 7 (d)以上均不对
解答:
题目自身就给了足够的提示
b[0][0] = 4
b[1][0] = 7
如下图:
++b 表示跨越a[0]的三个元素。