Как оправдывается размер каждой переменной указателя, равной 8 байтам на 64-битной машине? - PullRequest
0 голосов
/ 15 сентября 2018

Я прошел арифметику указателей и тот факт, что вы не можете назначить указатель одного типа данных другому типу данных.например, нижеприведенная декларация неверна.

  double x = 10;
  int *ptrInt = &x;

Мы присвоили адрес двойной переменной «указателю на целое число».Double занимает 8 байтов по сравнению с целым числом, которое занимает 4 байта, и, следовательно, целочисленный указатель усекает эти дополнительные 4 байта.

Но почему размер любой переменной указателя составляет 8 байтов, и это также означает, чтоне будет усекать эти дополнительные 4 байта и должен работать правильно (даже если это не так).

У меня есть это сомнение.Кто-нибудь может мне помочь с разъяснением?

1 Ответ

0 голосов
/ 15 сентября 2018

почему размер любой переменной указателя равен 8 байтам? переменная-указатель содержит адрес, а размер адреса равен 8 byte в 64-bit системе независимо от того, указывает ли переменная-указатель на int илиchar или float объекты как указатель 64-bit поддерживают 8 byte адресное пространство.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...