我在学习C,现在我在指针中发生混乱。我的问题是,为什么不printf(“%d”,*(i));使用多维数组时返回元素而不是地址?C中指针的混乱
#include <stdio.h>
int main()
{
int i[2][2] = {{1,8},{2,9},{3, 4}};
//int i[2] = {1,2,3};
printf("%d", *(i));
printf("\n%d", i);
}
我在学习C,现在我在指针中发生混乱。我的问题是,为什么不printf(“%d”,*(i));使用多维数组时返回元素而不是地址?C中指针的混乱
#include <stdio.h>
int main()
{
int i[2][2] = {{1,8},{2,9},{3, 4}};
//int i[2] = {1,2,3};
printf("%d", *(i));
printf("\n%d", i);
}
因为多维数组可以写为**我所以你在做*(i)给你第一个数组的地址。
请注意,在你的代码中,'i'的长度是2,但初始化程序有3个元素。 –