#include <iostream>
int main(){
std::cout << main << std::endl;
return 0;
}
为什么它在命令行中打印 1 ?
你的程序格式不正确。 N4140:
§3.6.1/3 功能main
不得在程序中使用。 [...]
如果我们假装该程序没有格式错误,最可能的解释是标准转换:
§4.3/1 函数类型的左值T
可以转换为纯右值
输入“指向T
。”结果是指向该函数的指针。
§4.12/1 算术、无作用域枚举、指针或
指向成员类型的指针可以转换为类型的纯右值bool
。 A
零值、空指针值或空成员指针值是
转换成false
;任何其他值都会转换为true
。为了
直接初始化 (8.5),类型的纯右值std::nullptr_t
可
转换为类型的纯右值bool
;结果值为false
.
如果您坚持这样做,请尝试:
std::cout << (void*)main << std::endl;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)