C sizeof char-Zeiger

Warum ist die Größe des char-variable gleich 1?

int main(){

char s1[] = "hello";

fprintf(stderr, "(*s1) : %i\n", sizeof(*s1) )    //prints out 1

}
sizeof(char) = 1, * ist der Wert an der Adresse-operator. *s ist nichts, aber den ersten char. das ist in Ihrem Fall h. so sizeof(*s)=1, interessant ist sizeof(s1)6.
ASCII hat 128 codes nicht 256.
Kennen Sie erweiterten ASCII-Tabelle? seine bis zu 256, die sich von 0 bis 255...
Ich denke, dass C weiß nichts über den erweiterten ASCII-Tabelle.
Der Betreiber sizeof liefert einen Wert von Typ size_t. Auch das ignorieren der Tatsache, dass Sie fordern eine "Variable" Funktion ohne Prototyp in Umfang, mit "%i" ohne eine entsprechende int argument falsch ist. Entweder "%zu" oder cast den Wert. Oh! und die richtigen header.

InformationsquelleAutor user1477955 | 2013-01-12

Schreibe einen Kommentar