C語言實現(xiàn)兩個變量值交換的三種方式
1.使用臨時變量(推薦)
這是日常使用最多的一種方式,只需要額外申請一個臨時變量,簡單實用

#include<stdio.h>
int main()
{
int a = 5;
int b = 3;
printf("交換前 %d %d\n", a, b);
int c = a; //a的值放到臨時變量中
a = b; //b的值放到a中
b = c; //臨時變量中存放的a的值放到b中
printf("交換后 %d %d\n", a, b);
return 0;
}
2.相加和相減的方式(值較大時可能丟失數(shù)據(jù))
使用這種方式的環(huán)境,就是在條件不允許創(chuàng)建額外的臨時變量時(比如題目要求,面試官要求)
但是這種情況雖然能達(dá)到交換的效果,但是在兩個變量較大時(接近整型變量的上限),求和之后就會丟失一部分的數(shù)據(jù),導(dǎo)致結(jié)果出錯

#include<stdio.h>
int main()
{
int a = 5;
int b = 3;
printf("交換前 %d %d\n", a, b);
a = a + b;
b = a - b;
a = a - b;
printf("交換后 %d %d\n", a, b);
return 0;
}
3.按位異或運(yùn)算
這種方式巧妙得運(yùn)用了按位異或的計算特點——對任何兩個值進(jìn)行按位異或運(yùn)算之后,再拿結(jié)果與原來的一個值進(jìn)行按位異或,都會得到另外一個原來的值
這種方式解決了上一種方式存在的丟失數(shù)據(jù)問題,且不需要額外的臨時變量,缺點是可讀性較差

#include<stdio.h>
int main()
{
int a = 5;
int b = 3;
printf("交換前 %d %d\n", a, b);
a = a ^ b;
b = a ^ b;
a = a ^ b;
printf("交換后 %d %d\n", a, b);
return 0;
}
到此這篇關(guān)于C語言實現(xiàn)兩個變量值交換的三種方式的文章就介紹到這了,更多相關(guān)C語言兩個變量值交換內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
clion最新激活碼+漢化的步驟詳解(親測可用激活到2089)
這篇文章主要介紹了clion最新版下載安裝+破解+漢化的步驟詳解,本文分步驟給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-11-11
C++實現(xiàn)LeetCode(76.最小窗口子串)
這篇文章主要介紹了C++實現(xiàn)LeetCode(76.最小窗口子串),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07
C++實現(xiàn)學(xué)校人員管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C++實現(xiàn)學(xué)校人員管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-03-03

