C語言中intpNULL則這條語句是不是錯的

2021-03-09 19:02:01 字數 2828 閱讀 6817

1樓:匿名使用者

前面int *p=null;就是定義bai乙個du空指標。zhi但後面*p=0;可以正

dao常執行的前提,是這個p指標指向了內乙個合法記憶體空間容。

譬如:int a;

int *p=null;

p=&a;    /*p指向變數a的位址*/*p=0;    /*這裡的意思就是把0寫入p指向的記憶體空間,也就是變數a存放的空間,這樣就改變了變數a的值*/

這樣是可以的。

2樓:匿名使用者

沒錯,這是定義乙個指標變數p,並賦值為空,用以說明該指標沒有任何指向性。

該指標的值為null在儲存單元中的指向為0,也就是不指向任何位址。單看這一條語句的話,是沒有意義的。

3樓:匿名使用者

p賦為null,之後再賦值是可以的,但*p=0,本身就有問題

4樓:非常可愛

c語言bai

中int *p=null意思是:

c語言du中p裡面是隨機值,在zhiint *p=null,這個p是有值的,dao為null;

int *p=null指向乙個空指標專,等於屬 int *p=0; null等於0;

可以隨時讓這個p指向其他位址。定義指標,將它初始化為null,這樣做程式設計更規範。

擴充套件資料

*p = null的作用

代表對乙個由指標p指向的變數(什麼型別,不知道),賦值為0,是將那個變數賦值為0。

int *p;

*p = null;

第一行**,定義了乙個指標變數p,其指向的記憶體裡面儲存的是int型別的資料;但是這時候變數p本身的值是多少不得而知,也就是說現在變數p儲存的有可能是乙個非法的位址。

第二行**,給*p賦值為null,即給p指向的記憶體賦值為null;但是由於p指向的記憶體可能是非法的,所以除錯的時候編譯器可能會報告乙個記憶體訪問錯誤。這樣的話,可以把上面的**改寫,使p指向一塊合法的記憶體:

int i = 10;

int *p = &i;

*p = null;

c語言中int *p=null是什麼意思

5樓:非常可愛

c語言中

int *p=null意思是:抄

c語言襲中p裡面是隨機值,在int *p=null,這個p是有值的,為null;

int *p=null指向乙個空指標,等於 int *p=0; null等於0;

可以隨時讓這個p指向其他位址。定義指標,將它初始化為null,這樣做程式設計更規範。

擴充套件資料

*p = null的作用

代表對乙個由指標p指向的變數(什麼型別,不知道),賦值為0,是將那個變數賦值為0。

int *p;

*p = null;

第一行**,定義了乙個指標變數p,其指向的記憶體裡面儲存的是int型別的資料;但是這時候變數p本身的值是多少不得而知,也就是說現在變數p儲存的有可能是乙個非法的位址。

第二行**,給*p賦值為null,即給p指向的記憶體賦值為null;但是由於p指向的記憶體可能是非法的,所以除錯的時候編譯器可能會報告乙個記憶體訪問錯誤。這樣的話,可以把上面的**改寫,使p指向一塊合法的記憶體:

int i = 10;

int *p = &i;

*p = null;

6樓:衄潲

樓上bai說的都對,看來你是新du手,建議你去看林銳zhi

的《高質量daoc++》,這本書,內你一定會喜歡的,因容

為他對於入門者來說特別好,他會給你講正確的程式設計規範是什麼。其中那塊講指標的部分就寫了,定義指標,一般先給初始化,用null來初始化它,避免野指標。你這裡說的int *p,這個p裡面是隨機值,而int *p=null,這個p是有值的,為null.

這其實對程式也沒有啥貢獻,在後面你也可以隨時讓這個p指向別的位址。定義指標,順便將它初始化為null,這樣做程式設計更規範。

c語言中 int*p[4] 和 int(*p)[4]的區別是什麼?

7樓:匿名使用者

int*p[4]是指標的陣列

,也就是說它

是乙個陣列,陣列裡存的是乙個個的指標

int(*p)[4]是陣列的指標,也就是說它是乙個指標,指向的是乙個陣列。指標指向的型別會影響到指標加減運算時位址的位移。比如說有乙個陣列 int a[4],加上取址運算子 &a,這個表示式的型別就是指向陣列的指標,可以這樣賦值 p = &a;。

一般用於向函式傳遞二維陣列的時候使用這種型別,這時還有一種更直觀的寫法

void matrix_sum(int matrix_a[4], int matrix_b[4])

這種寫法和

void matrix_sum(int (*matrix_a)[4], int (*matrix_b)[4])

是等價的。

8樓:望闌珊將盡

結合性不一樣:前者是指標陣列,為4個int指標的陣列,有4個元素;後者是陣列指標,為乙個指標,型別為指向包含4個int型別元素的一維陣列的指標。

c語言中int x=5 *p=&x *p+1的值

9樓:匿名使用者

c是指標變數,&p是表示其位址;而x未賦值,所以&(x+1)是錯誤的 if(x=y)中的x

10樓:匿名使用者

相當於:x+1;

結果為:x=6

11樓:好程式設計師

你寫錯了吧,感覺有點亂,你看看錯了嗎

c語言中的,c語言中的EOF

全文結束就是文字的結束,0 是字串結尾字元,在螢幕上敲的話,linux下輸入ctrl d,windows下輸入ctrl z,os下輸入f4,就能輸入eof。兩個while語句,前面乙個判斷讀取字元是否為eof,後面乙個判斷讀取字元是否為換行字元。如果敲回車的話,沒有eof,只有 r,r是回車符。全文...

c語言中chars101abc,c語言中chars101abc0printfsn,s下面程式段的輸出結果是

輸出的結果 aabc 為什麼輸出這個,是因為 代表乙個反斜線字元 101 代表的是101是乙個整數,在printf時就會輸出這個整數的 ascii字元,即 a 程式的輸出結果是 aabc 解釋 強兩個反斜槓是為了輸出乙個反斜槓 義 101是ascii碼,按字串輸出就是a,後邊依次輸出,0是字串結束符...

c語言中cabcab是什麼意思,C語言中cabca,b是什麼意思

max 是個函式,表示取其中最大的值。比如a 3,b 4,則max a,b 4 a 4,b 3,則max a,b 4 a 3,b 3,則max a,b 3 c語言中c abc a,b 是什麼意思 這是乙個函式呼叫的語句,c等於abc函式的返回值。一般這麼寫abc是乙個函式,也就是存在 fun typ...