Im ищет лучшее понимание следующих 3 примеров.Разный контент & a
Это мои вопросы к следующим примерам кода.
- Ex. 1. Пример имеет смысл, он выдает адрес, из которого хранится int a .
- Исх. 2. Делает немного меньше смысла. Я думаю, что это , потому что сам шар указывает на символ?
- Исх. 3. Смущает меня. В вывод первого выходного сигнала символа всегда сохраняется на символе. Но какие добавочные символы и почему они появляются после сохранения & a указателю на символ?
И наконец, как я могу вывести адрес ячейки памяти, где сохраняется переменная символа?
Ex. 1
main(void)
{
int a = 1;
cout << &a;
}
Вывод адрес памяти Ex. 0x7fff4241b7b4
Ex 2.
main(void)
{
char a = 'a';
cout << &a;
}
Выводит символ а. ех. a
Ex. 3.
main(void)
{
char a = 'a';
char *b = &a;
cout << &a;
}
Выходы а:
Второе и третье - неопределенное поведение. 'operator <<' имеет перегрузку для 'const char *' из-за строк. – chris
Это больше связано с перегрузками 'std :: ostream & operator <<', чем с поведением '&'. – juanchopanza
@chris: Почему третий выход должен быть неопределенным? Он кажется совершенно определенным: нет ничего плохого в назначении адреса символа 'char' указателю и указанию адреса указателя. Тем не менее, я сомневаюсь, что выход третьей программы - это то, что она утверждала, вероятно, это больше похоже на «0x7fff5f174a68». –