Вопрос с про размер()
Привет.У меня есть приведенная ниже программа на языке Си, и я хочу, чтобы вы помогли мне кое-что понять.
Код:
Что я уже пробовал:
char x, s[5], *p = NULL; int y, a[10], *q = NULL;p = &x; q = a; printf("char: %ld, int: %ld\n", sizeof(char), sizeof(int)); printf("x: %ld, y: %ld\n", sizeof(x), sizeof(y)); printf("s: %ld, a: %ld\n", sizeof(s), sizeof(a)); printf("p: %ld, q: %ld\n", sizeof(p), sizeof(q)); printf("*p: %ld, *q: %ld\n", sizeof(*p), sizeof(*q)); }
с выходом:
char: 1, int: 4 x: 1, y: 4 s: 5, a: 40 p: 8, q: 8 *p: 1, *q: 4
Единственное, чего я не могу понять, почему это происходит, - это p: 8, q: 8
64-битная система
Почему?
Спасибо.