Gegeben dieses Code-Snippet:
%Vor% Warum ist sizeof(c + i) == 4
?
c + i
ist ein Integer-Ausdruck (Ganzzahlpromotion!), sodass sizeof()
sizeof(int)
Integer-Typen, die kleiner als int sind, werden bei einer Operation hochgestuft auf ihnen durchgeführt. Wenn alle Werte des Originaltyps sein können dargestellt als int, wird der Wert des kleineren Typs in konvertiert ein int; Andernfalls wird es in einen unsigned int konvertiert.
Integer-Werbeaktionen erfordern die Heraufstufung jeder Variablen (c und i) in die int-Größe.
%Vor% Das C verwendet int
für alle ganzzahligen Berechnungen, wenn nicht anders angegeben. Auf Ihrer Plattform ist int
eindeutig 32 Bit lang, daher gibt sizeof
4
zurück. Wenn Ihr Compiler 64-Bit-Ganzzahlen verwendet, wäre es 8
.
Tags und Links c