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

為了賬號安全,請及時綁定郵箱和手機立即綁定

內存申請不成功時

if(NULL==P)

NULL==P與P==NULL有什么區別

正在回答

1 回答

int *p = NULL;?
定義一個指針變量p,其指向的內存里面保存的是int 類型的數據;在定義變量p 的同時把p 的值設置為0×00000000,而不是把*p 的值設置為0×00000000。這個過程叫做初始化,是在編譯的時候進行的。?
int *p;?
*p = NULL;?
第一行代碼,定義了一個指針變量p,其指向的內存里面保存的是int 類型的數據;但是這時候變量p 本身的值是多少不得而知,也就是說現在變量p 保存的有可能是一個非法的地址。第二行代碼,給*p 賦值為NULL,即給p指向的內存賦值為NULL;但是由于p 指向的內存可能是非法的,所以調試的時候編譯器可能會報告一個內存訪問錯誤。這樣的話,我們可以把上面的代碼改寫改寫,使p 指向一塊合法的內存:?
int i = 10;?
int *p = &i;?
*p = NULL;?
在編譯器上調試一下,我們發現p 指向的內存由原來的10 變為0 了;而p 本身的值, 即內存地址并沒有改變。?

0 回復 有任何疑惑可以回復我~
#1

StevenW 提問者

非常感謝!
2016-05-17 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
C++遠征之離港篇
  • 參與學習       122678    人
  • 解答問題       493    個

C++掃清通往面向對象的最后一道障礙,將所有知識點融會貫通

進入課程

內存申請不成功時

我要回答 關注問題
微信客服

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

幫助反饋 APP下載

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

公眾號

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