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

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

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