我被这个难住了。我正在粘贴下面的程序。相同的代码给C不同的输出
void printGrid(int n,char grid[n][n]){
for(int i = 0; i<n ; i ++) {
printf("\n%s",grid[i]);
}
}
int main() {
char grid[6][6]= {"-----","-----","-----","-----","-----"};
printGrid(5, grid);
for(int i = 0; i<5 ; i ++) {
printf("\n%s",grid[i]);
}
return 0;
}
输出:
-----
-
--
---
-----
-----
-----
-----
-----
为什么同样for
循环产生外部和功能printGrid
内不同的输出?
关键字:二维数组不是双指针。 – 2013-03-20 11:53:16
请注意,“----- \ 0”实际上是7个字节(每个字符串文字会自动添加'\ 0')。另外,'grid'数组是'6x6',你告诉'printGrid','grid'是'5x5',这是完全不同的。 – 2013-03-20 11:54:53
H2CO3详细说明? Kiril是的,我知道我只是把那里想到的其他东西。 – 2013-03-20 11:56:08