C語言中指標的幾種正誤方式
錯誤1、
void Swap(int a, int b)//未傳指標
{
int tmp = a;
a = b;
b = tmp;
}
此方式在呼叫函式的進行交換的代碼,可以看出,只是單純的將各自存盤的地址進行交換而已,沒有進行傳指標!
錯誤2、
void Swap(int* p1, int* p2)//未解參考
{
int* tmp = p1;
p1 = p2;
p2 = tmp;
}
此方式雖然傳入的是a和b的地址,但是沒有對相應的地址進行操作,沒有解參考!
錯誤3、
void Swap(int* p1, int* p2)//有野指標 tmp的值未初始化
{
int* tmp;
*tmp = *p1;
*p1 = *p2;
*p2 = *tmp;
}
此方式用到了指標傳遞,也解參考了,但是tmp的值未初始化!
正確方式
void Swap(int* p1, int* p2)
{
int tmp;
tmp = *p1;
*p1 = *p2;
*p2 = tmp;
}
總結
1、一個函式想修改另一個函式的值,必須傳指標和解參考
2、野指標、空懸指標:沒有訪問權限的地址
3、空指標(NULL):表示當前指標無效
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/221004.html
標籤:python
