vb加減乘除程序設(shè)計(jì)怎么做 swap函數(shù)兩個(gè)數(shù)交換,在形參里為什么有&符號(hào)可以實(shí)現(xiàn)交換,沒有&就不能交換?
swap函數(shù)兩個(gè)數(shù)交換,在形參里為什么有&符號(hào)可以實(shí)現(xiàn)交換,沒有&就不能交換?你好,我是【小毅老師】,很高興為你解答。有兩個(gè)地方有問題:1、這里用到了C語言中的printf函數(shù),所有要加頭文件stdi
swap函數(shù)兩個(gè)數(shù)交換,在形參里為什么有&符號(hào)可以實(shí)現(xiàn)交換,沒有&就不能交換?
你好,我是【小毅老師】,很高興為你解答。有兩個(gè)地方有問題:
1、這里用到了C語言中的printf函數(shù),所有要加頭文件stdio.h在代碼的開頭寫上 #include<stdio.h>
2、swap函數(shù)的形參是指針變量,所以在調(diào)用這個(gè)函數(shù)的時(shí)候要把地址傳過去(即實(shí)參要是地址),所以不能寫成swap(x,y),而要寫成swap(&x,&y)這是&是取地址符號(hào)。更多專業(yè)的科普知識(shí),歡迎關(guān)注我。如果喜歡我的回答,也請(qǐng)給我贊或轉(zhuǎn)發(fā),你們的鼓勵(lì),是支持我寫下去的動(dòng)力,謝謝大家。
定義一個(gè)函數(shù)swap,功能為交換兩個(gè)變量a和b的值,在主函數(shù)中輸入2個(gè)數(shù),調(diào)用該函數(shù),輸出交換后的數(shù)據(jù)?
#include<stdio.h>
void swap(int *a,int *b)
{
int temp
temp = *a
*a = *b
*b = temp
}
int main()
{
int a,b
scanf("%d%d",&a,&b)
swap(&a,&b)
printf("%d %dn",a,b)
return 0
}
swap操作實(shí)現(xiàn)交換兩個(gè)容器內(nèi)所有元素的功能。要交換的容器的類型必須匹配: 必須是相同類型的容器,而且所存儲(chǔ)的元素類型也必須相同。調(diào)用了swap函數(shù)后,右操作數(shù)原來存儲(chǔ)的元素被存放在左操作數(shù)中,反之亦然。