【发布时间】:2020-03-24 11:39:18
【问题描述】:
鉴于这个问题,我完全了解以下事实:
1) 数组的名称是指向它的第一个元素的固定指针。
2) 二维矩阵的名称是它的第一个一维数组的地址。
3) 以及 x[i] 和 &x[i] 在算术运算中的区别(其中 i 是非负整数)。
编译器是MinGW C 中的编译器如何获得数组第一个元素的地址和整个数组的地址之间的差异,尽管它们具有相同的数值?
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
int main(void)
{
int x[3][3] = {1,2,3,4,5,6,7,8,9} ;
int *p ;
for(p = &x[0] ; p < &x[0] + 1 ; p++) //Warning: comparison of distinct pointer types in this line of code
printf("%d\n",*p) ;
return 0 ;
}
【问题讨论】:
-
使用代码格式化程序而不是图像按原样发布代码
-
不清楚你问的是第一个元素,还是元素
i。 -
p &< x[0] + 1看起来像是语法错误。 -
对不起,这是另一个程序。我现在上传了正确的。
-
&x[0]不是int *!!
标签: c compiler-construction mingw