本文共 548 字,大约阅读时间需要 1 分钟。
void main() { int *p = NULL; cout << p << endl; cout << &p << endl; } 输出结果为: 0x00000000 0x00125731 void main() { char *p = NULL; cout << p << endl; cout << &p << endl; } 输出: 报错!中断!
原因:
cout << p << endl; 对于: int *p; //cout << p; 输出的是p指针所指向内存单元的地址(当为int *p = NULL;时,p值为0) 而对于类型为: char *p; // cout << p; 输出的是一个字符串,并不是p指针所指向内存单元的地址, 二者输出p的含义不一样。如何获得 char *p = “TEST “;中字符串“TEST”的地址呢? &p为指针在堆栈中的地址,cout << p;又不能输出 “TEST “的地址,
方法: cout << (int)p;转载地址:http://vtomb.baihongyu.com/