C語言中的while p NULL 語句,這個p指標是不是自動往後走啊,沒有 p和P

2021-04-12 07:18:52 字數 3197 閱讀 7882

1樓:匿名使用者

不會自動往後走的。這種情況下一般也不會簡單地加,多半是做連結串列之類結構的遍歷,p=p->next之類的語句。

2樓:我知道你才怪

那不行吧,有沒有重新賦值p的呢?

3樓:匿名使用者

在這條語句中,p沒有變化

4樓:

就這半個迴圈語句而言是不會改變p指標的值的,你這裡只列了一個迴圈條件,並沒有列出迴圈體,這個p指標應當是在迴圈體中值發生變化。

c語言中,p是指標,while(p)是不是相當於while(p!=null)

5樓:辯一辯

null在計算機記憶體中儲存時儲存的是0.

相同的還有false也儲存的0,字串裡的'\0'儲存的也是0.

也就是說false,null,'\0'儲存在計算機裡很多時候是一樣的。

6樓:匿名使用者

沒錯 null就是0的意思

空指標一般指向null咯咯

7樓:匿名使用者

while(k) == while(k!=0)

講這個c語言while(null!=p->next)翻譯成中文

8樓:匿名使用者

預設:抄指標p指向一個含有next指標變數的結構,bai並且next指標和p指標的du型別一致,一般用於連結串列結zhi構指向下一個連結串列節dao點。

當p指標指向的結構中next變數不為null時迴圈換句話說,如果是在連結串列中,當p指向節點的後續節點存在時繼續迴圈,當沒有後續節點時停止迴圈。

9樓:匿名使用者

當(null 不等於 p指向下一個位置)時。

或者當 指標p指向的下一個元素不為空 (null)時

在c語言中,null等不等於0?假設p是一個指標變數,if(p);和if(p!=null);這兩個

10樓:冰川和企鵝

對這個問題的回答與「等於」所指的意思有關。如果你是指「與。比較的結果為相等」,例如:

if(/* ... */)

else

/* ... */

if(p==0)

那麼null確實總是等於0,這也就是空指標定義的本質所在。

如果你是指「其儲存方式和整型值。相同」,那麼答案是「不」。null並不必須被存為一個整型值0,儘管這是null最常見的儲存方式。在有些計算機中,null會被存成另外一些形式。

如果你想知道null是否被存為一個整型值0,你可以(並且只能)通過除錯程式來檢視空指標的值,或者通過程式直接將空指標的值列印出來(如果你將一個空指標強制轉換成整型別,那麼你所看到的很可能就是一個非零值)。

11樓:百度使用者

null意思是沒有定義任何內容 而0具有一定的數值意義

c語言指標p+1與p++有什麼不同 5

12樓:匿名使用者

第一句應該是p = p+1吧。

這2句的結果是一樣的,相信樓主也是知道的,都表示p+1然後結果儲存在p中。

但是所有的研發還內是實驗,如果碰到自加1的運算都會選擇p++,這裡面的關鍵點是p++的運算速度比p=p+1快,雖然一條語句說快能塊多少呢?但是運算步驟少,不僅僅是提高速度,而且可以減少出錯的機率,這對於工程來說也是很重要的,必須要儘量減少不確定因素對程式的影響。

下面說下為什麼步驟少:

在計算p = p+1的時候,cpu的順序是這樣的

1 。 首先找到p+1中右邊p的地址,記住,cpu並不知道左邊的p和右邊的p是同一個地址,他會將這兩個p視為兩個不同的變數。

2. 找到右邊的p的地址後,然後加1,

3,這一步就是找左邊的p的地址。

4,。將結果賦值給左邊的p。結束

5. 計算機是不是很笨,是的,他很笨,但是他速度快,並且他嚴格按照規矩辦事,所以一般不會出現錯誤。

當執行p++的時候。

1.找到p的地址,然後加1,結束。

可以看出,p=p+1和p++結果是一樣的,但是這個計算過程是不一樣的。這容才是他們的區別。

祝你進步!

13樓:

p+1執行後p的值是p,而p++執行後p的值是p+1。

14樓:匿名使用者

我給你舉個例子,假設定義一個double 型別陣列,每個是4個位元組,所以,p+1表示指標移動了一個位置,也就是p+4,而p++只是p+1

15樓:匿名使用者

p+1的話指標實際上沒有移動,而p++則指標向下移動一個單位

16樓:匿名使用者

p+1和p++都表示是指標移動一個單位,只是p++要使用完本次指標才移動一個單位的,而p+1則是將指標移動一位才使用的。。。。

17樓:匿名使用者

p+1只是指標向後移一位,此時p本身指向的值不變,p++則是p指向它後一位指標指向的值。

18樓:匿名使用者

區別有兩點

1.p++將p的指標移動了,而p+1則沒有

2.p++返回沒加1的p的指標,而p+1返回加1後的指標

19樓:好人泉哥

p++相當於p=p+1

這裡的來1特別要注意自

它的單位是基本元素的型別

例如int a[4]=;

int*p=a; //a是個常量,就是『1』的首地址則*p==1

*p++==2

*(p+1)=2

20樓:匿名使用者

p+1 與p++的區別就是,

p++修改了p本身的值

相當於p = p+1;

21樓:匿名使用者

第一個p值不變,第二個p值加了一個一。

22樓:一季忘川

int *p,*q,*s;

int a[10];

p = a; //p 指向

襲 a[0]

s=p+1; //s 指向 a[1] , p沒有變,還是指向 a[0]

q=p++; //相當於 q=p ; p=p+1; q指向a [0] ,p指向a[1]

C語言中的問題,c語言中 p , p 的問題

講一下vc6.0的流程 1.a 0 前置自減運算子先運算,結果使a 02.a a 0 後置運算子在表示式中先使用,後運算,所以a 的值還是0 3.0 a 0 後置運算子在表示式中先使用,後運算,所以a 的值還是0 4.0 a 0 1 1 前置運算子先運算,結果使a變為1 所以結果sum 1 運算後,...

c語言中的conio h方面的,C語言中 conio h 是幹什麼用的,能具體解釋一下嗎

標頭檔案 conion.h 是用來清屏的 在後面的 中巢狀 clrscr 來完成 清屏 清行 向後刪行 插行的操作真有些cced wps等編輯軟體的風格,就是在你平時的螢幕設計中也用少不了。返回座標的函式則給你的設計提供每一個環節的游標座標值。有利於你前後響應。字 符亮度的改變則會讓你的字元顯示出層...

c語言中關於,C語言中關於ch ch a A 的大小寫轉換,為什麼不直接是「ch ch 32」?請大俠詳解!!!

兩種寫法結果一致,之所以寫成第一個 是 可閱讀性 更好,通過 很容易明白在做什麼,而第二個ch 32,32 來的?為什麼是32?非編寫者閱讀程式會很痛苦。因為比較清楚,讓閱讀 的人一看就知道這行 的目的是執行大小寫轉化 以後寫程式多向此學習,類似情況要多采用全字元處理,這樣可以避免資料型別轉換出現問...