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";
и посмотрите, что они выведут.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Написать функцию, которая возвращает сумму n чисел ФибоначчиЧисло n принимается в качестве аргумента, нужно без доп
Дайте решение задачи по вычислению площади треугольника плизНужно найти периметр треугольника с заданными пользователем значениями и определить...
Дано 2 натуральных числаУзнать в каком из них сума цифр больше