读书人

为什么 int *p = NULL;可以输出而 *

发布时间: 2012-03-14 12:01:12 作者: rapoo

为什么 int *p = NULL;可以输出,而 *p = NULL; 就报错误呢?
在VC6.0编译器上:
void main()
{
int *p = NULL;
cout < < p < < endl;
cout < < &p < < endl;
}
输出结果为:
0x00000000
0x0012FF7C

void main()
{
int *p = NULL;
cout < < p < < endl;
cout < < &p < < endl;
}
输出:
报错!中断!


[解决办法]
这样输出的是一个C类型的字符串 而C类型的字符串的结束字符也是NULL
是不是这样引起的冲突 我也不是很清楚
但可以知道使用string类型和int型的输出结果是一样的

[解决办法]
你有能力推导出结果。只不过一直没人提醒你要自己思考。
[解决办法]
因为你访问了0指针。
见ostream重载的 输出char*

读书人网 >C++

热点推荐