C++ 是不是;库特<&书信电报;(char*)空“;“做”;关闭(1)“;在这里

C++ 是不是;库特<&书信电报;(char*)空“;“做”;关闭(1)“;在这里,c++,unix,C++,Unix,在下面的代码中,我使用了coutcout(char*)NULL不会将NULL转换为类似“NULL”的字符串NULL实际上是一个扩展到0的宏。将其强制转换为char*会将其转换为指向零的指针(空指针)。唯一的问题是打印出来。这是为了尝试打印空指针。到目前为止,您无法理解程序显示的任何行为。你的程序没有崩溃这一事实让我感到惊讶。这里你在流上设置了badbit,这导致在coutYes之后没有打印任何内容,这是令人惊讶的,我在我的Linux上运行了这个示例程序(使用编译器gcc和clang),它没有崩溃

在下面的代码中,我使用了
cout
cout
(char*)NULL
不会将
NULL
转换为类似
“NULL”
的字符串
NULL实际上是一个扩展到
0
的宏。将其强制转换为
char*
会将其转换为指向零的指针(空指针)。唯一的问题是打印出来。这是为了尝试打印空指针。到目前为止,您无法理解程序显示的任何行为。你的程序没有崩溃这一事实让我感到惊讶。

这里你在流上设置了
badbit
,这导致在
coutYes之后没有打印任何内容,这是令人惊讶的,我在我的Linux上运行了这个示例程序(使用编译器gcc和clang),它没有崩溃。
#include<iostream>
using namespace std;

void f(){
    cout<<"\nfun\n";
}

main(){
cout<<(char*)NULL;
f(); //not getting printed !
cout<<"\nhello\n";  //not getting printed !
cout<<"hii how are you?"; //not getting printed, why??
}
if (!__s)
 __out.setstate(ios_base::badbit);