【发布时间】:2021-12-17 15:53:14
【问题描述】:
我知道二维数组基本上是指向数组的指针,所以在下面的代码中,a 是指向本身是数组的第 0 个索引的指针,*a 应该返回第 0 个索引元素的地址,a 和 *a 如何返回相同的值
#include <stdio.h>
#include <stdio.h>
int main () {
int a[4] [5] = {{1, 2, 3, 4, 5},
{6, 7,8, 9, 10},
{11, 12, 13, 14, 15},
{16, 17,18, 19, 20}};
printf("%d\n",a);
printf("%d\n",*a);
}
【问题讨论】:
-
您的问题是什么?您应该使用
%p打印指针并将它们转换为void*。 -
a和*a具有相同的值但类型不同 -
而且...不,数组不是指针。它在大多数表达式中都转换为指针,但这并不意味着数组是指针
-
不是直接的欺骗,而是接近...stackoverflow.com/questions/2528318/…
标签: c pointers multidimensional-array printf implicit-conversion