int geht nicht
-
Warum compiliert das nicht?
#include <iostream> int main() { int i = "12a"; std::cout<<i; return 0; }
-
Warum sollte es ?
"12a" ist eine Zeichenkette. Du versuchst eine Zeichenkette in einer int-Variable abzulegen, das geht nicht.
-
Sieht so aus als möchtest du i einen Hex-Wert zuweisen. Das geht wie folgt:
int i = 0x12a;
-
DarkShadow44 schrieb:
Warum sollte es ?
"12a" ist eine Zeichenkette.Es gibt Experten, die behaupten, es wäre auch ein int.
-
Das müssen komische Experten sein.
-
Streng genommen ist "12a" ein Zeichenkettenliteral, welches implizit je nach Bedarf als "char[]" oder "char const *" behandelt wird.
In letzterem Fall wäre es in gewisser Weise ein int, da Zeiger ja auch nur Zahlen sind.
Hierfür müsste man aber explizit casten.
-
DrakoXP schrieb:
Streng genommen ist "12a" ein Zeichenkettenliteral, welches implizit je nach Bedarf als "char[]" oder "char const *" behandelt wird.
Nein. Zeichenkettenliterale sind immer Arrays. Sie können aber implizit zu Zeigern konvertiert werden.
DrakoXP schrieb:
In letzterem Fall wäre es in gewisser Weise ein int, da Zeiger ja auch nur Zahlen sind.
So ein Schwachsinn. Mit dieser Argumentation könnte man alles als
intrechtfertigen, "da ja alles nur Bits und somit Zahlen sind".Bitte nicht unnötige Verwirrung stiften.
-
hustbaer schrieb:
Das müssen komische Experten sein.
z.B. Shade Of Mine und std::cin
Dein Gedächtnis ist auch nicht so toll, du warst doch von anfang an dabei.
http://www.c-plusplus.net/forum/p2374782#2374782
-
moment schrieb:
hustbaer schrieb:
Das müssen komische Experten sein.
z.B. Shade Of Mine und std::cin
Dein Gedächtnis ist auch nicht so toll, du warst doch von anfang an dabei.
http://www.c-plusplus.net/forum/p2374782#2374782Das ist etwas völlig anderes.
-
Vorallem, wenn einer dann noch behauptet, dass wäre in jeder Sprache auch ein int.