字符指针vs int指针

时间:2013-01-15 14:38:34

标签: pointers

这是如何运作的:

int main()
{
    int * ch = NULL;
    cout<<"Hello"<<ch<<"World"<<endl;;
    cout<<"Hello world1"<<endl;
    return 0;`
 }

虽然失败了:

int main()
{
    char * ch = NULL;
    cout<<"Hello"<<ch<<"World"<<endl;;
    cout<<"Hello world1"<<endl;
    return 0;`
}

1 个答案:

答案 0 :(得分:0)

对于大多数指针类型,

cout << ptr;

打印指针值的实现定义表示,通常是十六进制格式的地址。但是对于char*operator<<()被重载以将指针解释为指向0终止char数组中第一个char的指针,并将其打印为{{1}会的。

打印空指针指向的地址是无害的,在空指针之后解释从指向的位置开始的字节是未定义的行为,并且通常会导致分段错误。