为什么在我的电脑上cout<<main;
打印1
?我以为它会打印main的地址。但是当我使用时,printf("%x",main);
我会得到不同的输出。
编辑:
我尝试std::cout
了其他功能。我得到1
了每一个案例。
为什么在我的电脑上cout<<main;
打印1
?我以为它会打印main的地址。但是当我使用时,printf("%x",main);
我会得到不同的输出。
编辑:
我尝试std::cout
了其他功能。我得到1
了每一个案
为什么在我的电脑上cout<<main;
打印1
?我以为它会打印main的地址。但是当我使用时,printf("%x",main);
我会得到不同的输出。
编辑:
我尝试std::cout
了其他功能。我得到1
了每一个案例。
它不过是undefined behavior
。这是行为不可预测的代码示例。
它不过是undefined behavior
。这是行为不可预测的代码示例。
void foo(){};
cout << foo << endl;
函数指针将被转换为bool
,除非像这样使用它:
cout << reinterpret_cast<void*>(foo) << endl;
编辑:这是未定义的行为,main
不能像其他函数指针一样使用。
C++11(ISO/IEC 14882:2011)§3.6.1:主要功能
3 函数 main 不得在程序中使用。main 的链接(3.5)是实现定义的。将 main 定义为已删除或将 main 声明为 inline、static 或 constexpr 的程序是格式错误的。名称 main 没有保留。[ 示例:成员函数、类和枚举可以称为 main,其他命名空间中的实体也可以。—结束示例]