我有一个 C 代码,它使用简单的逗号运算符
main()
{
int a= 1,2,3;
printf("%d",a);
}
现在当我编译时出现错误,而同一个程序稍加修改就可以正常运行
main()
{
int a;
a= 1,2,3;
printf("%d",a);
}
为什么会这样?
最佳答案
在第一种情况下,如果您假装声明多个变量或分配多个值,编译器将无法区分,因此会引发错误。
int a= 1,2,3;
你是说 int a; a = 1, 2, 3
还是 int a = 1, int 2, int 3
?编译器无法从上下文中分辨出来(即使 2 或 3 不是合法的变量名)。
这种歧义在第二种情况下不存在,因此没有错误(但无论如何都会发出警告)。
PS:是int main()
不是 void main()
。
关于c - 为什么下面的 C 代码在编译时失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9515351/