这些指针初始化有什么问题

时间:2010-04-10 13:19:05

标签: c++

char * a=0;
int * b=0;
cout<<a<<a+1;
cout<<b<<b+1;

它有什么问题

3 个答案:

答案 0 :(得分:8)

初始化很好。对NULL指针进行指针运算是错误的。

此外,cout << (const char*)假定操作数是有效的C风格字符串,而不是NULL指针。如果你想打印字符串的地址,而不是字符串本身,你需要转换它,因为否则char指针会得到特殊处理。

char* a = 0;
std::cout << static_cast<void*>(a);

答案 1 :(得分:1)

您正在为指针的值分配null(0),这意味着它们不引用有效的内存位置。

答案 2 :(得分:-1)

没有错。

或许你对这段代码的期望有些不对。