Warum gibt der erste eine Referenz zurück? int x = 1; int y = 2; (x > y ? x : y) = 100; Während der zweite nicht? int x = 1; long y = 2; (x > y ? x : y) = 100; Tatsächlich hat der zweite überhaupt nicht kompiliert - "kein Wert übrig von der
Warum gibt der erste eine Referenz zurück? int x = 1; int y = 2; (x > y ? x : y) = 100; Während der zweite nicht? int x = 1; long y = 2; (x > y ? x : y) = 100; Tatsächlich hat der zweite überhaupt nicht kompiliert - "kein Wert übrig von der
int main () { int a = 5,b = 2; printf("%d",a+++++b); return 0; } Dieser Code gibt den folgenden Fehler aus: Fehler: lWert als Inkrementoperand erforderlich Aber wenn ich setzen Räume in ganz a++ +und ++bdann funktioniert es gut. int main () { int a = 5,b = 2; printf("%d",a++ + ++b); return 0; } Was...
Betrachten Sie diesen Code: struct foo { int a; }; foo q() { foo f; f.a =4; return f;} int main() { foo i; i.a = 5; q() = i; } Kein Compiler beschwert sich darüber, auch Clang. Warum ist die q() = ...Zeile korrekt?
Betrachten wir den folgenden Code: int main() { int i = 2; int b = ++i++; return 3; } Es wird mit folgendem Fehler kompiliert: <source>: In function 'int main()': <source>:3:16: error: lvalue required as increment operand 3 | int b = ++i++; | ^~ Das klingt fair für mich. Das...
Beispiel: typedef enum Color { RED, GREEN, BLUE } Color; void func(unsigned int& num) { num++; } int main() { Color clr = RED; func(clr); return 0; } Beim Kompilieren wird folgende Fehlermeldung angezeigt: <source>: In function 'int main()': <source>:16:9: error: cannot bind...