Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 为什么std::cout<&书信电报;主<&书信电报;std::endl打印1? #包括 int main(){ std::cout_C++ - Fatal编程技术网

C++ 为什么std::cout<&书信电报;主<&书信电报;std::endl打印1? #包括 int main(){ std::cout

C++ 为什么std::cout<&书信电报;主<&书信电报;std::endl打印1? #包括 int main(){ std::cout,c++,C++,您的程序格式不正确。N4140: §3.6.1/3功能main不得在程序中使用。[…] 如果我们假装程序不是格式错误,最可能的解释是标准转换: §4.3/1函数类型T的左值可转换为 键入“指向T”结果是指向函数的指针 §4.12/1算术、非范围枚举、指针或 指向成员类型的指针可以转换为类型为bool.a的prvalue 不支持零值、空指针值或空成员指针值 转换为false;任何其他值都转换为true 直接初始化(8.5),可以使用类型为std::nullptr\u t的PR值 转换为类型为boo

您的程序格式不正确。N4140:

§3.6.1/3功能
main
不得在程序中使用。[…]

如果我们假装程序不是格式错误,最可能的解释是标准转换:

§4.3/1函数类型
T
的左值可转换为 键入“指向
T
”结果是指向函数的指针

§4.12/1算术、非范围枚举、指针或 指向成员类型的指针可以转换为类型为
bool
.a的prvalue 不支持零值、空指针值或空成员指针值 转换为
false
;任何其他值都转换为
true
直接初始化(8.5),可以使用类型为
std::nullptr\u t
的PR值 转换为类型为
bool
的PR值;结果值为
false

如果您坚持这样做,请尝试:

#include <iostream>

int main(){
    std::cout << main << std::endl;
    return 0;
}

std::cout出于好奇,您希望此代码打印什么?在本例中,main是一个函数指针。@JonathonReinhart:是吗?记住
main
是特殊的……这可能是未定义的行为。您不能命名main。请参阅。您不允许在程序中使用
main
。它仍将打印
1
f或者普通函数的名称,因为函数指针被隐式转换为
bool
。相关:函数指针将被转换为bool。不要忘记在我看到的
main
中,
std::ostream
没有
的部分被多次使用times@L那是c。我没有看到任何标准的引文哦,远说它在C中是不正确的。
std::cout << (void*)main << std::endl;