1樓:鬆睿博
這個是傳值問題!
一般的引數傳值有兩個辦法!
1,就是指標傳值。
void swap(t *x,t *y)
swap(&d1,&d2);
2,是引用傳值
void swap(t &x,t &y)
swap(d1,d2);
2樓:
將void swap(t x,t y)改為void swap(t &x,t &y)
之所以加上&是因為&表示引用,訪問的是地址,都是用作形參,相當於實參中的指標符號*。
3樓:匿名使用者
#include
template
void swap1(t &x,t &y)template
void swap2(t *x,t *y)int main()
4樓:
你這個交換需要在呼叫時帶地址引數,而不能是變數本身void swap(t* x,t* y)
。。。swap(&i1,&i2);
swap(&d1,&d2);
。。。或者
int i1=1,i2=2;
double d1=1.23,d2=2.34;
拿到void swap(t x,t y) 前面,讓它們成為全域性變數搞清楚全域性變數和區域性變數就ok了
c++交換兩個數的值**
5樓:金色潛鳥
猜測,可能是:
swap(&x,&y);這句 呼叫你寫的函式。
swap(x,y);這句 呼叫系統裡的同名函式。
你可以在你寫的函式里加一句 cout << "my function" < 呼叫 swap(x,y); 將不會顯示 "my function"。 呼叫 swap(&x,&y); 會顯示 "my function"。 c++ 允許定義同名而引數不同的函式。swap(x,y); 是引數引用。 小小歐平兒 1 首先,就是最基本的知識,寫標頭檔案 函式宣告 定義變數。2 下面還需要定義指標,需要定義兩個指標p1和p2,然後把a的位址賦值給p1,把b的位址賦值給p2。3 然後就是呼叫函式,該函式沒有返回值,就直接呼叫,但是引數進入的是a和b的位址,而不是a和b。4 函式點用完之後,就是輸出a和... void swap int i,int j 這種方法是向子函式傳值,i,j 是區域性變數,當子函式呼叫完後就被釋放了,傳不到主函式中 而將i,j 定義為全域性變數,程式中任何地方對i,j 的呼叫修改都會改變i,j 的值 交換整型或字元型變數,我從不用函式,在記憶體中直接用位運算多好,不占用系統資源,... 不懂多來問問 include using namespace std 去掉陣列中為a的資料 int main int a2 10 int j 0,i while j l1 else cout l1 去掉陣列中為a的資料 寫好了 include int main printf 請輸入第二個陣列的元素個...c語言中如何交換兩個指標變數的的值
求助,C語言用呼叫函式解決兩個數字交換
c語言,兩個將兩個陣列中的相同元素全部刪去,輸出刪去後的兩個陣列。如1,1,1,2,2,2,0,2,1,