字符指针值为空白,为什么代码不打印5


#include <iostream>               
using namespace std;             
int main() {
   char* x=0;     //  initialize pointer character called x equals zero 
   cout<<x;       //  print the value of pointer in memory      
   cout<<5;       //  print 5 on screen  (not executed)  
}  

第9行未由编译器执行

std::ostreamoperator<<char*的过载,这会导致您传递给它的指针。

这意味着您尝试将指向0的指针放置,从而导致不确定的行为。在这种情况下,您的下一个印刷品未显示。

如果要显示地址,则应明确地施放给void*

cout<< static_cast<const void*>(x);

您分配了一个char指针变量x = 0,该变量为null并试图放置一个无效的指针,从而导致不确定的行为。指针变量应仅存储另一个变量的地址

最新更新