指標是不能直接進行異或運算的,需要將指標轉換成整型int或long,在linux系統下只能是long,因為指標在win系統佔4個位元組,在linux系統佔6個位元組。
以下為兩個指標的異或運算實現指標的交換:
#include intmain()
在linux 64系統中的執行結果為:
a:0x7ffc70da4cf0b: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#includeusing
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個臨時變...