2017-03-15 72 views
-7
int a,b,c; 
a=b++, c++; //error here 

我想要測試是否a會得到c++未初始化的局部變量 'B' 使用

錯誤信息的價值:

未初始化的局部變量 'B' 使用

未初始化使用局部變量'c'

編輯: 我在網上看過這個http://www.studytonight.com/cpp/operators-and-their-types.php,但這是錯誤的,這是其他用戶的說法

+5

「我試圖測試一個會得到C++的價值」所以...... C++的價值是什麼? – George

+3

可能初始化'b'和'c'!? – xander

+2

如果變量「不具有」初始值,如何增加變量? – chris

回答

0

您使用的來源錯誤多次。

int a,b,c; 
a=b++, c++; 

首先要從未初始化的變量讀取導致UB,所以你不能預測什麼將是a。其次,即使你初始化bc那表情等於:

(a=b++), c++; 

看到的行爲在該網站預測你必須寫:

a=(b++, c++); 

由於operator=超過逗號更高的優先級。細節可以發現here