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

Ich versuche, wenn a zu testen, wird der Wert von c++Uninitialized lokale Variable 'b' verwendet

Fehlermeldung erhalten:

Uninitialized lokale Variable 'b' verwendet

Uninitialized lokale Variable 'c' verwendet

EDIT: Ich lese dies im Internet http://www.studytonight.com/cpp/operators-and-their-types.php, aber es ist falsch das ist, was andere Benutzer sagen

+5

"Ich versuche zu testen, ob eine den Wert von C++ bekommen wird" so ... was ist der Wert von 'C++'? – George

+3

vielleicht initialisieren 'b' und' c' !? – xander

+2

Wie kann eine Variable inkrementiert werden, wenn sie keinen Anfangswert hat? – chris

Antwort

0

Quelle, die Sie verwenden, ist falsch mehrmals.

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

zunächst aus nicht initialisierten Variablen Lesen führt zu UB, so kann man nicht vorhersagen, was in a wäre. Zweitens: Selbst wenn würden Sie initialisieren b und c, dass die Expression ist gleich:

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

zu sehen Verhalten auf dieser Website vorhergesagt Sie schreiben müssen:

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

aufgrund höherer Priorität von operator= über Komma . Details finden Sie here

Verwandte Themen