關於交換函式Swap的常見錯誤和用法

2021-10-24 17:25:45 字數 1028 閱讀 4901

關於野指標:也稱為懸掛指標,你沒有訪問許可權的位址(指標),這個指標有可能不存在也有可能存在但是你不能訪問

野指標很麻煩,不好判斷

1.位址不存在

2.位址存在但是不能訪問

3.位址之前可以訪問,但現在不可以

結論:乙個函式(父函式)呼叫另乙個函式(子函式),想通過子函式修改父函式的資料.必須傳指標,子函式內部解引用。換句話說,子函式的改變要想影響父函式的資料必須傳指標和解引用.。

常見錯誤一·:定義乙個整形指標來存放p1,然後交換p1與p2的值,再將tmp的值賦給p2。p1和p2分別指向a與b,即p1=&a ,p2=&b,在當p1與p2的值交換之後,p1改變為指向b,p2改變為指向a,即p1=&b ,p2=&a,但a,b的值並未改變,只是改了指標。

void

swap_err2

(int

*p1,

int*p2)

//錯誤

void

swap_err3

(int

*p1,

int*p2)

常見錯誤三:錯誤理解swap函式與主函式中的引數,swap函式中的引數為形參,而主函式中的引數為實參,兩者並不是同一型別的引數,所以在swap函式中交換兩個形參的值並不會影響主函式中實參的值,因為此時,兩個函式中的a與b所處的位址不同,改變乙個函式中的值,對另乙個函式中的值並不會產生影響。

void

swap_err1

(int a,

int b)

正確**:

#include

void

swap

(int

*p1,

int*p2)

intmain()

執行結果如下:

02 關於交換函式Swap的一些用法和常見錯誤

關於野指標 也稱為懸掛指標,你沒有訪問許可權的位址 指標 這個指標有可能不存在也有可能存在但是你不能訪問 野指標很麻煩,不好判斷 錯誤的 號碼 1.位址不存在 號少一位 2.位址存在但是不能訪問 號寫成別人 3.位址之前可以訪問,但現在不可以 更換 號碼,我卻給你之前的號碼打 結論 乙個函式 父函式...

關於如何通過Swap函式交換兩個變數的值

資料交換在c語言中十分常見。作為初學者首先學的應該都是如下方式 int main 這種交換如果放在乙個函式中沒錯,但如果將它們分別放在子函式和主函式中就會發生錯誤。錯誤示例1 void swap int a,int b int main 其結果是列印出來的a,b值並沒有交換。這是因為在子函式中定義的...

C 學習筆記(二) 交換函式(swap)

這次我們要透過乙個簡單的函式swap深入理解函式傳參的本質以及在c 中如何選擇傳參方式。先來看第一段程式 void swap int x,int y 通過main函式的呼叫,我們發現x,y並未實現交換 int main 原因是整形x和y在函式swap內為按值傳遞,按值傳遞時,函式不會訪問當前呼叫的實...