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

2021-10-04 05:33:34 字數 743 閱讀 7260

乙個函式想修改另乙個函式的值,必須做到兩點

1.傳指標;

2.解引用;

正確**

void

swap

(int

*p1,

int*p2)

錯誤示範1:未傳指標造成無法交換

void

swap_err1

(int a,

int b)

錯誤示範2:未解引用造成無法交換

void

swap_err2

(int

*p1,

int*p2)

錯誤示範3:使用懸掛指標,編譯器報錯

void

swap_err3

(int

*p1,

int*p2)

錯誤示範4:不使用第三變數進行交換,在進行如含有奇數個元素的陣列逆置時,會造成中間的那乙個值出錯,值變為0

在進行陣列逆置時,會進行中間值和本身互換,而在使用指標時,p1、p2指向的是同乙個值,最後結果一定會為0

void

swap1_err4

(int

*p1,

int*p2)

注意對指標的使用,防止在呼叫函式時出現不可預知的錯誤

c語言中swap問題小結

include include void swap1 int x,int y int temp temp x x y y temp void swap2 int x,int y int temp temp x x y y temp void swap3 int x,int y int temp te...

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

首先在看這一篇部落格之前應該要了解到在main函式裡面呼叫乙個main函式外的函式,引數傳過去只是乙個拷貝的值。如果直接把兩個int傳入函式,用乙個中間變數交換他們倆,那麼這只是改變了這個變數在swap函式裡面的值,回到main裡面就復原了。那麼,如何真正交換兩個int變數的值呢?用指標,把兩個in...

溫故而知新 C語言中swap函式

最近在學習資料結構和演算法,發現使用到swap 函式,於是重新看了一下swap函式的各種實現,發現我對函式實參和形參理解不夠透徹,現在分享我對swap的一些見解。void swap int a,int b 而以下兩種是不能實現交換的 void swap1 int a,int b void swap2...