像这样的简单代码,
int arr[3][3] = {1, 2, 3, 4};
printf("%d\n", *(arr));
我以为输出将是表的第一个值 1,但 gcc 返回给我一个垃圾值。
谁能解释一下多维表和简单表的区别?
最佳答案
得到了数组第一行的地址,也就是整个数组第一个元素的地址。
*(arr)
等于 arr[0]
因此您正在尝试打印一个地址,应该使用 %p printf 说明符。
关于C程序三维表的第一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22947789/