為什么這段代碼不會因為 y 未宣告而引發編譯錯誤?
int x = 10, y;
printf("%d", y);
沒有類似的表達int y;。就我而言,控制臺列印出來的是32764,這似乎只是未初始化的記憶體。查看第一行的匯編代碼,無論是否, y存在都是相同的,即使在 print 陳述句中使用了 y。
期待看到
error: use of undeclared identifier 'y' printf("%d", y);
uj5u.com熱心網友回復:
這個:
int x = 10, y;
不是逗號運算子的實體。這,是宣告語法的一部分,它允許在同一行上宣告多個變數。具體來說,它宣告x并將其初始化為 10 并宣告y哪個未初始化。它相當于:
int x = 10;
int y;
如果你這樣做了:
int x = (10, y);
然后你會有一個逗號運算子的實體和一個未宣告識別符號的錯誤。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/532991.html
標籤:C逗号运算符
