C中利用指標交換兩個變數值的一點誤區

2021-09-25 15:56:41 字數 435 閱讀 6739

#include

void

swap

(int

*a,int

*b)void

main()

上面這段**可以實現交換兩個資料,但是有的人會存在乙個誤區,就是會認為是位址發生了交換,這種想法是錯誤的,在swap這個函式的呼叫時,我們通過傳入a和b的位址,並在swap函式體中接收的*a和*b其實就是*&a和*&b,這一點很重要,*&a就是存放a變數的位址中的數值,因此,當*&a發生改變時,a的值自然也會發生改變,要注意的是,這是位址中的值的交換,而不是位址的交換,在下圖的列印中,我們可以清楚地看到,在發生之前,a和b的位址與發生交換之後a和b的位址都沒有發生改變。

交換兩個變數值

交換兩個變數的值 引入第三方變數 int x 5,y 3 int temp 0 temp x x y y temp system.out.println x x t y y 引入第三方變數是很容易解決的!不引入第三方變數 方法一 先求和,然後在從和裡面減掉乙個數,得到另乙個數 int a 3,b 5...

PHP交換兩個變數值

方法一 交換兩個變數的最簡單方法是使用第三個臨時變數 1 2 a 15 3 b 27 4 交換邏輯 5echo 交換前的數字為 6 echo a a.且 b b 7 temp a 8 a b 9 b temp 10 echo 交換後的數字為 11 echo a a.且 b b.輸出 交換前的數字為 ...

交換兩個變數值的方法

這是學程式設計的人都會想到的方法,因為邏輯性不是很強交換起來比較方便,能很快達到交換資料的目的,但是多乙個變數就需要為它分配儲存空間,以下為乙個例子 var left 10 var right 8 console.log 左手為 left console.log 右手為 right console....