溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

交換兩個(gè)整型變量的值

發(fā)布時(shí)間:2020-07-04 11:41:14 來源:網(wǎng)絡(luò) 閱讀:339 作者:迎著風(fēng)奔跑 欄目:編程語言
#include<stdio.h>
#include<stdlib.h>
int main()
{
    int a = 1;
	int b = 2;
	int tmp = a;
	a = b;
	b = tmp;
	printf("a = %d b = %d\n",a,b);
	system("pause");
	return 0;
}

上面是用創(chuàng)建中間變量的方法交換,下面是不創(chuàng)建中間變量的另一種方法:

     a = a+b;
	b = a-b;
	a = a-b;	



當(dāng)然還可以用異或:
	a = a^b;
	b = a^b;
	a = a^b;


以上都是在main函數(shù)中實(shí)現(xiàn),下面一種方法創(chuàng)建了函數(shù),用指針來交換兩個(gè)整型值:

#include<stdio.h>
#include<stdlib.h>
void Swap(int *p1, int *p2)
{
	int tmp = *p1;    
	*p1 = *p2;        
	*p2 = tmp;       
}
int main()
{
	int a = 1;
	int b = 2;
	Swap(&a, &b);
	printf("a = %d b = %d\n",a,b);
	system("pause");
	return 0;
}

然而如果Swap函數(shù)寫成下面這樣是錯(cuò)誤的,只是進(jìn)行了值傳遞,上面的方法傳的是地址
void Swap(int num1, int num2)
{
	int tmp = num1;
	num1 = num2;
	num2 = tmp;
}
向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI