亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

C++ 關于空指針

C++ 關于空指針

C++
有只小跳蛙 2018-07-29 18:18:18
有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貢獻1864條經驗 獲得超6個贊

空指針的定義和理解:
真正的空指針是說,這個指針沒有指向一塊有意義的內存,比如說:
char* k;
這里這個k就叫空指針。并未讓它指向任意地點。
又或者char* k = NULL;
這里這個k也叫空指針,因為它指向NULL也就是0,注意是整數0,不是'\0'。一個空指針我們也無法對它進行取內容操作??罩羔樦挥性谡嬲赶蛄艘粔K有意義的內存后,我們才能對它取內容。也就是說要這樣k = "hello world!";這時k就不是空指針了。

查看完整回答
反對 回復 2018-08-01
?
蝴蝶刀刀

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)歸操作系統所用。


查看完整回答
反對 回復 2018-08-01
  • 2 回答
  • 0 關注
  • 773 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號