【发布时间】:2018-09-01 15:09:59
【问题描述】:
#include <stdio.h>
int main(){
int *a = {1,2,3,4,5};
printf("a:%x &a:%x\n",a,&a);
return 0;
}
我用 GCC 编译了这个程序。
a 的输出是1,&a 的输出是一个地址。
GCC 对int *a = {1,2,3,4,5} 做了什么? GCC 是否将其视为一个数组或指向数组或其他东西的指针?
【问题讨论】:
-
不要贴代码图片,贴实际代码。
-
不是因为我们无法读取代码的图像,而是因为它们是代码,应该这样发布。有人可能还想复制并粘贴它来运行它。
-
int *a = {1,2,3,4,5};真的吗? -
逗号在此处用作运算符。这就是为什么你得到 a=1 因为 a={1,2,3,4,5} 等同于 "(a = 1),2,3,4,5" 。并且 *a 指向一个整数。