返回值return a[i][j];
这里接上一个for循环语句i,j不是都为2吗,应该输出a[2][2]的值啊,为什么我测试出来输出的是a[3][3]的值12啊??
求指点
你可能要好好理解一下循环流程,,你i== 2, j == 0 时循环通过,然后j++3次后, j == 3 (j循环停止), 然后到i循环,i++,i==3,i循环停止,不就是输出a[3][3]
因为经过for循环后面的i++,j++,i从最后一个值2变为了3,j从最后一个值2也变为了3,是这样来的,测试代码如下:
#include <stdio.h>
int fun(int a[4][4]){
int i,j;
for(i=0;i<4;i++){
for(j=0;j<4;j++){
a[i][j]=i+j;
}
}
for(i=0;i<3;i++){
for(j=0;j<3;j++){
a[i+1][j+1]+=a[i][j];
}
}
printf("i=%d,j=%d,a[%d][%d]=%d\n",i,j,i,j,a[i][j]);
return a[i][j];
}
int main(void){
int a[4][4];
printf("%d",fun(a));
return 0;
}