short int a;
short int *pa;
pa = &a;
*pa = 10;
cout << "a = " << a << endl; //a = 10
cout.setf(ios::hex);
cout << "&a = " << &a; //&a = 0x7ffc079b67ae
Неужели short int хватает чтобы записать такой длинный адрес переменной? Насколько мне известно, адреса должны выглядеть примерно так 0x7ffc079b67ae. Неужели short int хватает чтобы записать такой адрес, или запись адреса в указатель происходит каким-то другим образом? Объясните, пожалуйста, кто разбирается. Или это происходит как-то по какой-то ссылке на указатель?
Проведем аналогию - адрес на конверте в общем-то, всегда одного размера, указываете ли вы на небоскреб или на собачью будку :) Т.е. размер указателя не связан с размером того, на что он указывает.
А чтобы понять, какого конкретно размера ваш указатель, добавьте в программу следующие строки:
cout << "Размер a = " << sizeof(a) << " байт\n";
cout << "Размер pa = " << sizeof(pa) << " байт\n";
и посмотрите, что они выведут.
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости