c語言中指針作為實參使用SWAP函數的問題。
c語言中形參與實參的關系是:形參是實參的值副本。無論參數的類型是什么,傳遞到子函數中的形參只是實參的值。所以,在改變形參變量自身的值時,是與實參無關的。換句話說,形參的改變不會影響到實參。
但,如果參數類型是指針類型,則可以通過對指針變量所指向的地址中的數據進行修改,達到改變實參地址中的數據目的。
因此,使用SWAP函數進行數據交換時,必須保證兩點:
參數必須是指針類型,指向待交換的數據
交換時,必須交換地址中的數據,而不是交換地址本身。
參考代碼:
//錯誤的交換代碼1
voidswap1(inta,intb)//參數不是待交換數據的指針
{
intt=a;
a=b;
b=t;
}
//錯誤的交換代碼2
voidswap2(int*a,int*b)
{
int*t=a;//交換形參變量本身
a=b;
b=t;
}
//正確的交換代碼
voidswap(int*a,int*b)
{
intt=*a;//交換形參變量地址中的數據,指針變量不變
*a=*b;
*b=t;
}
C 語言swap函數怎么實現不了
樓主需要再深刻理解一下函數的參數和返回值~
首先一個函數的返回值必然只能是一個變量,您的swap函數中return(a,b)可能編譯都不通過哦~
同時,函數的參數有傳地址、傳值、傳引用三種形式,您這種情況建議使用傳指針的方式,在swap中直接對a,b的值進行修改。代碼如下:
void swap(int*a, int*b)
{
int t;
t=*a;
*a=*b;
*b= t;
}
在main中調用方法為 swap(&a,&b);
以上就是CSWAP幣上線了哪些交易所(貨幣交易所)的詳細內容,更多請關注本站其它相關文章!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。