Biorąc pod uwagę ten fragment kodu:operator sizeof zwraca 4 dla (char + krótka)
#include <stdio.h>
int main() {
short i = 20;
char c = 97;
printf("%d, %d, %d\n", sizeof(i), sizeof(c), sizeof(c + i));
return 0;
}
Dlaczego sizeof(c + i) == 4
?
Integer promotion? – nouney
(c + i) jest dodawany jako pierwszy, a sizeof jest obliczany dla wypadkowej .., a wynikiem jest liczba całkowita .. tak rozmiar to 4. .. –
Nitpick: 'sizeof' nie jest funkcją, jest operatorem. – milleniumbug