C語言swap函式 解決函式不能交換值的問題

2021-10-12 04:19:03 字數 408 閱讀 1955

首先在看這一篇部落格之前應該要了解到在main函式裡面呼叫乙個main函式外的函式,引數傳過去只是乙個拷貝的值。

如果直接把兩個int傳入函式,用乙個中間變數交換他們倆,那麼這只是改變了這個變數在swap函式裡面的值,回到main裡面就復原了。

那麼,如何真正交換兩個int變數的值呢?

用指標,把兩個int的位址傳過去才可以。

如下

#include

void

swap1

(int a,

int b)

void

swap2

(int

*a,int

*b)int

main()

//假交換 a:4 b:5

//真交換 a:5 b:4

(C語言)實現指定函式swap 結構體

題目 實現swap方法 struct person void swap person array,int n 輸入結構體陣列和陣列元素個數。交換第乙個和最後乙個元素的height。儲存為swap.cpp.遇到異常情況,輸出 error 否則不要隨意輸出。我建議先去看看什麼是結構體,再來看這道題 in...

C語言中對於交換函式(SWAP)的編寫

乙個函式想修改另乙個函式的值,必須做到兩點 1.傳指標 2.解引用 正確 void swap int p1,int p2 錯誤示範1 未傳指標造成無法交換 void swap err1 int a,int b 錯誤示範2 未解引用造成無法交換 void swap err2 int p1,int p2...

C 筆記 C語言為什麼不能函式過載

函式過載 一 1 原因 c語言不能函式過載與函式編譯後函式名有關。2 c語言編譯後的 名稱為 函式名 c語言 int add int a,int b 這裡是有意只給宣告不給定義,int add int a,char b 出錯後會在顯示框顯示編譯後的函式名 int add char a,int b i...