Каков размер указателя?

Является ли размер указателя таким же, как и тип, на который он указывает, или указатели всегда имеют фиксированный размер? Например ...

int x = 10;
int * xPtr = &x;
char y = 'a';
char * yPtr = &y;

std::cout << sizeof(x) << "\n";
std::cout << sizeof(xPtr) << "\n";
std::cout << sizeof(y) << "\n";
std::cout << sizeof(yPtr) << "\n";

Каким будет результат? Будет ли sizeof (xPtr) возвращать 4, а sizeof (yPtr) возвращать 1, или 2 указателя действительно возвращают одинаковый размер? Причина, по которой я спрашиваю об этом, состоит в том, что указатели хранят адрес памяти, а не значения соответствующих им сохраненных адресов.

56
задан gobernador 21 July 2017 в 14:10
поделиться