首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

为什么 int *p = NULL;可以输出,而 *p = NULL; 就报异常呢

2012-03-14 
为什么 int *p NULL可以输出,而 *p NULL 就报错误呢?在VC6.0编译器上:voidmain(){int*pNULLcout

为什么 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*

热点排行