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?非編寫者閱讀程式會很痛苦。因為比較清楚,讓閱讀 的人一看就知道這行 的目的是執行大小寫轉化 以後寫程式多向此學習,類似情況要多采用全字元處理,這樣可以避免資料型別轉換出現問...