有int main(){using namespace std;int *p=NULL;cout<<&p<<endl;cout<<p<<endl;return 0;}1、雖然空指針不指向有效數據 但是是有空間來存儲空指針的嗎、?2、是不是因為空指針不指向有效數據 所以 cout<<*p;是錯的呢?、3、cout<<p;輸出的是0 代表的是p指向的空間是0嗎?
2 回答

蝴蝶刀刀
TA貢獻1801條經驗 獲得超8個贊
#include <iostream>
int main() {
using namespace std;
int *p = NULL;
cout << &p << endl; // &p是存放指針p的地址
cout << p << endl; // p指向的地址
cout << *p << endl; // p指向NULL,也就是0,顯示地址0單元的內容會出錯,原因是該地址不能讀/寫
return 0;
}
追問
C++能確保空指針不會指向有效數據么?
追答
指向NULL就是指向“空”,因為地址0不是普通用戶所能操作的地址單元,含地址0在內,內存(含ROM)歸操作系統所用。
- 2 回答
- 0 關注
- 773 瀏覽
添加回答
舉報
0/150
提交
取消