二维数组的C编程地址

标签 c arrays address-operator

假设我初始化了一个二维数组

Int a[2][3] = {
                              1, 2, 3,
                               4, 5, 6};

a[0] == &a[0]吗??

我知道 a[0] 指的是数组第一个元素的地址。那么&a[0]还是地址吗?

最佳答案

首先,arrayNum[0]的类型是Int[3]&arrayNum[0] 的类型是Int(*)[3] (我没有将 OP 的 Int 更改为可能的 int )。

其次,数组可以衰减为指向其第一个元素的指针,因此 arrayNum[0]可以衰减到&arrayNum[0][0]这是类型 Int* .

这两个指针,&arrayNum[0]&arrayNum[0][0]将指向相同的位置,但它们的类型非常不同。

关于二维数组的C编程地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48558528/

相关文章:

for 循环中的条件检查

javascript - 如何使用变量而不是字符串按 Mongoose 上的数组索引排序?

c++ - 函数调用中 * 和 & 运算符的区别

可以将地址分配给C中的变量吗?

vb.net - "addressof "VB6 到 VB.NET

c - pcap - 未接收流量 [OS X、El Capitan]

c++ - 增量后左值误差

c - 交换字符位并在交换后将其替换为新创建的字符

java - 将数据类型字符串中的数字转换为 char

arrays - 我可以快速覆盖下标吗?