char * a=0;
int * b=0;
cout<<a<<a+1;
cout<<b<<b+1;
它有什么问题
答案 0 :(得分:8)
初始化很好。对NULL指针进行指针运算是错误的。
此外,cout << (const char*)
假定操作数是有效的C风格字符串,而不是NULL指针。如果你想打印字符串的地址,而不是字符串本身,你需要转换它,因为否则char指针会得到特殊处理。
char* a = 0;
std::cout << static_cast<void*>(a);
答案 1 :(得分:1)
您正在为指针的值分配null(0),这意味着它们不引用有效的内存位置。
答案 2 :(得分:-1)
没有错。
或许你对这段代码的期望有些不对。