У нас есть следующий код:
#include <stdio.h>
#define LEN 10
int main(void) {
int i;
int array[LEN];
int *p;
for (i = 0; i < LEN; i++) {
array[i] = i;
}
for (p = &array[0]; p < &array[LEN]; p++) {
printf("Address: %p ", p);
printf("Value: %d\n", *p);
}
return 0;
}
И он просит нас узнать, сколько байтов использует сервер для хранения целочисленной переменной, и напечатать ее на новой строке, и это дает нам подсказку использовать размер.
Я немного новичок в работе с указателями, так что это, наверное, очень быстрый вопрос, но должен ли я печатать:
printf("Size of int: %d", sizeof(p));
или sizeof(*p)
Один печатает 4, а другие отпечатки 8. Я склонялся к 8 (который происходит от простого p), поскольку он относится к ячейке памяти, а не к значению переменной, на которую он указывает, верно? И 8 будет означать 8 бит, поэтому 1 байт будет ответом?