c語言中形參與實參的關係是:形參是實參的數值副本。無論參數的類型是什麼,傳遞到子函數中的形參只是實參的值。所以,在改變形參變數本身的值時,是與實參無關的。換句話說,形參的改變不會影響實參。
但,如果參數類型是指標類型,則可以透過對指標變數所指向的位址中的資料進行修改,達到改變實參位址中的資料目的。
因此,使用SWAP函數進行資料交換時,必須確保兩點:
參數必須是指標類型,指向待交換的資料
交換時,必須交換位址中的數據,而不是交換位址本身。
參考代碼:
//錯誤的交換代碼1
voidswap1(inta,intb)//參數不是待交換資料的指標
{
intt=a; t;
}
//錯誤的交換代碼2
voidswap2(int*a,int*b)
{
int*t=a;//交換形參變數本身
{int*t=a;//交換形參變數本身a; 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幣上線了哪些交易所(貨幣交易所)的詳細內容。更多資訊請關注PHP中文網其他相關文章!