为什么这段代码没有因为y未声明而抛出编译错误?
int x = 10, y;
printf("%d", y);
没有类似int y;
的表达。在我的例子中,控制台输出是32764
,它似乎只是未初始化的内存。查看第一行的汇编代码,无论, y
是否存在都是一样的,即使在print语句中使用了y。
预计会看到
error: use of undeclared identifier 'y' printf("%d", y);
This:
int x = 10, y;
是否不是是逗号操作符的实例。,
是声明语法的一部分,它允许在同一行上声明多个变量。具体来说,它声明x
并将其初始化为10,并声明未初始化的y
。它相当于:
int x = 10;
int y;
如果你这样做了:
int x = (10, y);
那么就会有一个逗号操作符的实例和一个未声明的标识符的错误。