Member 13881359 Ответов: 2

Как я могу проверить размер переменной указателя в C++


я очень смущен bcz моя концепция немного слаба в случае указателя поэтому я задаю вопрос от u в надежде что вы должны удовлетворить меня

Что я уже пробовал:

int *p;
соиь<&ЛТ; оператор sizeof(п) на <<епси;
соиь<&ЛТ;оператор sizeof(*Р) &ЛТ;<епси;

какая из них истинна и почему....?

2 Ответов

Рейтинг:
7

CPallini

И то и другое верно, потому что sizeof оператор всегда прав.

  • sizeof(p) - это размер указателя.
  • sizeof(*p) это размер самого заостренный тип.

На моем 64-битном Linux-боксе выводится следующее:
8
4

То есть указатели есть 8-байты длиной, в то время как целые числа 4-байт длиной.


Рейтинг:
12

User 7429338

sizeof(p) возвращает размер указателя на целое число (4 байта или 32 бита в 32-битном приложении).
sizeof(*p) возвращает размер целого числа (также 4 байта или 32 бита в 32-битном приложении).

Чтобы проиллюстрировать это лучше, рассмотрим:

char *c;
sizeof(c) возвращает размер указателя на символ (4 байта или 32 бита в 32-битном приложении).
sizeof(*c) возвращает размер символа (1 байт).


CPallini

5.