C程序三维表的第一个值

标签 c arrays

像这样的简单代码,

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/

相关文章:

c - 将 gtk 图形添加到现有的控制台应用程序 - 共享内存?

java - 摩尔斯转英语程序中的 Java 输出不正确

javascript - 测试检查数组是否原地反转

c# - 从数组中删除一项并将其他项向后移动

javascript - 在javascript中将字符串转换为对象数组的最佳方法?

php - 如何在多维数组中插入新的键和值?

c - 求一个数落在 2 的哪个幂次方范围内? (在 C 中)

c - 当我运行这个程序时,我收到一个名为 "Floating point exception"的错误

c - 在内存中查找进程页面(linux-kernel)

c - 为什么在函数 'getAr' 中定义的局部变量可以在 main 中访问?