Intereting Posts
Как добавить спрайт, который всегда находится на экране в Cocos2d? Как найти имя вызывающей функции? Не удается записать строку из 1 и 0 в двоичный файл, C ++ C ++ Вызов не виртуального нестатического метода из нулевого указателя без доступа к членам: гарантируется ли это? Можно ли преобразовать class enums в базовый тип? Почему ключевое слово volatile не требуется для синхронизации streamов? fopen: хорошая идея оставить открытым или использовать буфер? Есть ли некоротко замкнутый логический «и» в C ++? cmake для размещения промежуточных файлов в определенном каталоге C ++: синтаксис для доступа к членской структуре от указателя к classу C ++ setprecision (2) печать одного десятичного знака? Tuple std :: get () Не работает для переменной с постоянной константой неопределенная ссылка на символ «XF86VidModeQueryExtension» (linux, qt creator IDE) Как правильно удалить указатель из std :: list? Почему разрешено исключать исключение из функции noexcept-tagged?

Почему cout << main; печатает 1?

Почему cout<<main; печать 1 на моем компьютере? Я думал, что он напечатает адрес main. Но когда я использую printf("%x",main); Я получаю разные результаты.

Редактировать:

Я пробовал std::cout для других функций. Я получаю 1 за каждый случай.

Это не что иное, как undefined behavior . Это пример кода, поведение которого непредсказуемо.

 void foo(){}; cout << foo << endl; 

Указатель функции будет преобразован в bool , если не использовать его так:

 cout << reinterpret_cast(foo) << endl; 

EDIT : это неопределенное поведение, main не может использоваться как другие указатели на функции.

C ++ 11 (ISO / IEC 14882: 2011) §3.6.1: Основная функция

3 Основная функция не должна использоваться в программе. Связь (3.5) main определяется реализацией. Программа, которая определяет главную как удаленную или объявляет основную строку, статическую или constexpr, плохо сформирована. Основное имя не зарезервировано. [Пример: функции-члены, classы и enums можно назвать главными, а также сущностями в других пространствах имен. -End пример]