C語言指標,這兩種寫法為什麼錯

2025-03-09 13:55:05 字數 1918 閱讀 2143

1樓:桓暉微生紫雲

swap(int

pt1,int

pt2)int

temp;temp=pt1;

pt1=pt2;

pt2=temp;

因為第二種的指標temp沒有初始化是不對的。

也就像樓陵帆上說的,它們只改位址的位置,不改變內容。可是,像掘餘我上面說的判汪滾。最後沒有初始化temp也是種錯誤。

2樓:箕拔書蔓

呵呵,好問題,也是一般書比較少講解的。

答案是:函式傳遞引數其實只有一返談種:傳值薯渣。

swap()函式內的pt1

pt2其實是在swap內部臨時生成的,然後複製的傳入的。

pt1pt2

的值給它,所以,這時,其實有2個pt1指向乙個記憶體位址,2個pt2指漏手碰向另乙個記憶體位址。

3樓:甘衣粘燁燁

第二中寫法。

voidswap(int

pt1,int

pt2)int

temp;temp

pt1;pt1

pt2;pt2

temp;只是改變了pt1

pt2兩個指標所指的位置,沒有慶返改變他們所指的內容。

在呼叫swap(q1,q2)這個函式時,首先做的是複製引數,可以理納差老解為。

pt1q1;

pt2q2;

這樣。無論怎麼改變pt1

pt2他們指標的位洞公升置。

也不會影響到q1q2。

c語言指標易錯問題【附圖+高分】

4樓:網友

搞it的人,都是夜貓子啊。。

1.這個題和你前面的提問,都是關於指標的問題,因為指標太靈活,你可以畫個跳轉圖來標記每個指標指向的內容,這樣就好理解了。

2.任何變數都需要有儲存空間,每個儲存空間對應乙個儲存位址,比如指標p,即p有乙個儲存位址,該儲存位址對應的儲存空間放的是p指向的位址;

3.*p表示p是個指標,即p的值是個位址,該位址指向乙個字串(姑且這樣說),*k表示k是個指向指標的指標,即k的值也是乙個位址,但是該位址指向的還是乙個位址;

表示將a的儲存位址賦給了p,此時p的儲存空間放的是陣列a的首位址;k=&p,表示將指標p的儲存位址賦給了k;

5.*(p++)的意思是,先用p,後執行p自加操作,所以第乙個printf輸出的實質上是*p的值,不言而喻,輸出的結果是2;

6.第二個printf:前面說過,k存放的是指標p的儲存位址,那麼*k就是p的儲存空間內容(p的儲存空間存放的是陣列a的位址,但是注意,此時p的值已經加1了,也就是p指向了陣列a的第二個元素),因此*(*k)就是陣列a的第二個元素,結果就是輸出4;

5樓:網友

的意思是 先用後加 所以printf("%d",*(p++)顯示*p的值 。但在顯示之後 p已自加1

k 是定義乙個型別為int*的*k指標; k=&p即k等於p的位址,所以*k等於p的值 , 而p的值是a的位址。所以*k的值等於a的位址,那麼**k(可以看成 *(k))就a的位址的值 即2,但之前有p++操作 所以是4

6樓:網友

其實主要是乙個運算子的優先順序和結合性的問題。

與++優先順序一樣,其結合性自右向左。當*和++出現在運算元p的兩邊時,從右開始,++先與p作用,具體步驟:

第二個中有兩個**那表明是指標的指標**k相當於是*(*看)括號中的部分是p的值即a的位址值,a的位址值再加乙個*則就是a的值了。

呵呵,要是不對,別見怪啊。

7樓:網友

第乙個printf中*(p++)是先對p解除引用再運算p++ 所以結果是2

如果是*(+p)結果就是4

第二個printf中k是指向指標p的指標 所以要想得到k位址的內容必須使用兩次解除引用。

這兩種多肉植物叫什麼這兩種多肉植物分別叫什麼

紫珍珠 echeveria perle von n rnberg 景天科擬石蓮花屬的多肉植物 別稱是紐倫堡珍珠。紫羅蘭色的葉片使得這個品種具有非常強的觀賞性。一種擁有美麗的粉紫色葉片的多肉植物,葉緣呈白色。葉片呈蓮座形螺旋排列。中文學名 紫珍珠拉丁學名 echeveria perle von n r...

請問這兩種是什麼植物和花,請問這兩種是什麼植物和花呢?

你好,麻煩發 植物 plants 是生物界中的一大類。一般有葉綠素,沒有神經,沒有感覺。分藻類 菌類 蕨類和種子植物,種子植物又分為裸子植物和被子植物。有30多萬種。請問這兩種是什麼植物和花呢?請問這兩種花植物分別叫做什麼?只看到一張 金縷梅科 紅花繼木 還有呢?我只看到紅花檵木。這兩種是什麼植物?...

請問這兩種多肉叫什麼名字呀,這兩種多肉分別叫什麼名字

第一個我看著像香草,香草是勞爾和靜夜的雜交,白牡丹是朧月和靜夜雜交,所以他們幾個很像。第二個確實像薄毛萬年草 第一盆是白牡丹,葉片肥厚,平常為白色,日照增加後,葉尖和葉邊會變為粉紅色。第二盆是薄毛萬年草,葉片上有很多小絨毛,喜歡日照。這兩種多肉分別叫什麼名字 這兩張應該是一個品種的,叫魯氏石蓮 第一...