计划1:
#include <iostream>
using namespace std;
int main ()
{
int *ptr = NULL;
cout << "The value of ptr is " << ptr ;
return 0;
}
计划2:
#include <iostream>
using namespace std;
int main ()
{
char *ptr = NULL;
cout << "The value of ptr is " << ptr ;
return 0;
}
问题是,在程序1中,输出稳定为:
The value of ptr is 00000000
虽然在程序2中,我使用了char指针而不是int指针,它给了我一个例外。
任何人都可以帮助我理解吗?
答案 0 :(得分:3)
因为&lt;&lt;运算符不是在第一个程序中取消引用int *,它只是将指针的值打印为0.但是在第二个程序中&lt;&lt;运算符正试图将指针取消引用为一个崩溃的字符串。