Вопрос Как вывести адрес переменной в с++?

Регистрация
29 Дек 2013
Сообщения
94
Репутация
0
Спасибо
0
Монет
0
Не получается вывести адрес переменных ch и uch
и второй вопрос) И почему при любом раскладе адрес переменной - это всегда четное шестнадцатеричное число, почему именно четное?
179740033_256f8332e18346c31d3a06e9cd6ca8bf_800.png
 
Вот лень искать... но что-то я помню, что ты задавал этот вопрос... или путаю уже тебя. Ты вроде уже продивнут в си выше крыши, а еще такие простые вопросы задаёшь? И заметь, что все это связано с типом char а значит надо представить его не чар... подумай как :)
 
Чётные адреса - потому что компилятор выравнивает их для быстрого доступа в памяти (они кратны размеру регистра - то есть, для 32-битных программ это 4 байта (32 бит), для 64-битных - это 8 байт). В настройках компилятора можно отключить выравнивание, но ни к чему хорошему это не приведёт. Возможно, сэкономишь несколько байт в памяти, но производительность будет чуток хуже.
 
Указатель на char и на unsigned char воспринимается оператором вывода в cout как печать строки. Или преобразуйте его в указатель на другие типы или в целое число. Переменные для большинства процессоров должны быть выравнены по размеру переменной, т. е. двухбайтовая - по четному адресу, четырехбайтовая - по адресу, кратному 4 и т. п.
 
Назад
Сверху