指標的異或運算可用於交換兩個變數的值

2022-08-21 16:45:11 字數 950 閱讀 8400

指標是不能直接進行異或運算的,需要將指標轉換成整型int或long,在linux系統下只能是long,因為指標在win系統佔4個位元組,在linux系統佔6個位元組。

以下為兩個指標的異或運算實現指標的交換:

#include int

main()

在linux 64系統中的執行結果為:

a:0x7ffc70da4cf0

b:0x4004e0

a:0x4004e0

b:0x7ffc70da4cf0

因此我們可以看到,交換兩個值也不一定只能借助臨時變數,異或運算也是一種選擇。

以上****於:

下面附上對線性表的置逆操作,使用單鏈表實現:

#include#include

#define int long long

using

namespace

std;

typedef

struct

node;

//置逆函式

void inverse(node *list)

}void print(node *list)

signed main()

//主函式,順序表的初始化及銷毀直接在主函式中實現了

下面附上線性表的置逆,用順序表實現

#include#define int long long#include

using

namespace

std;

signed main()

for(int i = 1;i <= n;i++)

cout

<< vis[i] << "";

cout

}

對上述單鏈表的操作好好參悟參悟

異或運算實現兩個數的交換

通常的交換兩個變數a,b的過程為 int temp temp a a b b temp 需借助上面的第3個臨時變數temp.採用下面的方法,對於給定兩個整數a,b,下面的異或運算可以實現a,b的交換,而無需借助第3個臨時變數 a a b b a b a a b 這個交換兩個變數而無需借助第3個臨時變...

異或運算實現兩個數的交換

通常的交換兩個變數a,b的過程為 int temp temp a a b b temp 需借助上面的第3個臨時變數temp.採用下面的方法,對於給定兩個整數a,b,下面的異或運算可以實現a,b的交換,而無需借助第3個臨時變數 a a b b a b a a b 這個交換兩個變數而無需借助第3個臨時變...

異或運算實現兩個數的交換

通常的交換兩個變數a,b的過程為 int temp temp a a b b temp 需借助上面的第3個臨時變數temp.採用下面的方法,對於給定兩個整數a,b,下面的異或運算可以實現a,b的交換,而無需借助第3個臨時變數 a a b b a b a a b 這個交換兩個變數而無需借助第3個臨時變...