#include <iostream>
int main(){
std::cout << main << std::endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
为什么在命令行中打印1?
小智 5
你的程序格式不正确.N4140:
§3.6.1/ 3该功能
main不得在程序中使用.[...]
如果我们假装程序不是格式错误,最可能的解释是标准转换:
§4.3/ 1函数类型的左值
T可以转换为"指向T" 的类型的prvalue .结果是指向函数的指针.§4.12/ 1算术,无范围枚举,指针或指向成员类型的指针的prvalue可以转换为类型的prvalue
bool.将零值,空指针值或空成员指针值转换为false; 任何其他值都转换为true.对于直接初始化(8.5),std::nullptr_t可以将类型的prvalue转换为类型的prvaluebool; 结果值是false.
如果您坚持这样做,请尝试:
std::cout << (void*)main << std::endl;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
663 次 |
| 最近记录: |