java怎么交換變量值 函數(shù)的交換律?
函數(shù)的交換律?同樣函數(shù)的幾種(1)//errorintSwap1(inta,intb){inttmp;tmpa;ab;btmp;return0;}在函數(shù)Swap1中,a和b的地址的值并沒(méi)有什么收集。只
函數(shù)的交換律?
同樣函數(shù)的幾種
(1)
//error
intSwap1(inta,intb)
{
inttmp;
tmpa;
ab;
btmp;
return0;
}
在函數(shù)Swap1中,a和b的地址的值并沒(méi)有什么收集。只不過(guò)是把10和20賦給了a和b,a和b雖然的值根本不會(huì)轉(zhuǎn)變。
(2)
#includestdio.h
intSwap2(int*p1,int*p2)//error
{
int*tmp;
tmpp1;
p1p2;
p2tmp;
return0;
}
intmain()
{
inta10;
intb20;
printf(%d%d
,a,b);
Swap2(a,b);
printf(%d%d
,a,b);
return0;
}
在函數(shù)Swap2中,指針p1和p2共有指向a和b的地址,交換指針p1和p2,只是讓指針p1對(duì)準(zhǔn)b,指針p2指向a,a和b的值肯定就沒(méi)收集。
(3)
#includestdio.h
intSwap3(int*p1,int*p2)
{
int*tmp;
*tmp*p1;
*p1*p2;
*p2*tmp;
return0;
}
intmain()
{
inta10;
intb20;
printf(%d%d
,a,b);
Swap3(a,b);
printf(%d%d
,a,b);
return0;
}
*tmp是一個(gè)野指針,又叫做什么懸掛指針,野指針是指就沒(méi)朝比較有效(能訪問(wèn)網(wǎng)絡(luò))的地址的指針。
注:一個(gè)指針要想可以修改另一個(gè)函數(shù)的定義的數(shù)據(jù),要傳指針和解直接引用
一個(gè)變量只能訪問(wèn)網(wǎng)絡(luò)自己定義的變量,而又不能必掉訪問(wèn)一個(gè)變量,所以我系統(tǒng)會(huì)崩潰掉。
(4)
#includestdio.h
intSwap(int*p1,int*p2)//true
{
inttmp;
tmp*p1;
*p1*p2;
*p2tmp;
return0;
}
intmain()
{
inta10;
intb20;
printf(%d%d
,a,b);
Swap(a,b);
printf(%d%d
,a,b);
return0;
}
這個(gè)函數(shù)里既傳了指針,又接受打聽(tīng)一下語(yǔ)句,把*p1解引用的值a賦給tmp這個(gè)變量,把*p2解語(yǔ)句的值b賦給p1,把*p2解摘錄的值b賦給p2,這樣就同樣了a和b的值。
C語(yǔ)言基礎(chǔ)題。問(wèn):,編寫(xiě)程序?qū)崿F(xiàn)兩個(gè)變量數(shù)值交換?
大一的話(huà)就用加減法了#includeltstdio.hgtintmain(){inta,bprintf(