指针的解引用
在指针中只有解引用才能改变定义的值。
在功能函数中想要改变值必须要传指针和解引用才行,缺一不可。
以下是几种错误的指针使用方法
1.没有传指针也没有解引用
void Swap_err1(int i,int j) //此函数是既没有传指针也没有解引用
{
int temp;
temp =i;
i = j;
j = temp;
}
2.传了指针但是没有解引用
void Swap_err2(int *i,int *j) //此函数是传了指针但是没有解引用
{
int *tmp =i;
i = j;
j = tmp;
}
3.使用了野指针
void Swap_err3(int *i,int *j) //此函数是传了指针也解引用了但是使用了野指针
{
int *temp;
*temp = *i;
*i = *j;
*i = *temp;
}
关于野指针,野指针是调用了不允许调用的地址,在C语言中野指针是一种非法调用。
以下才是正确使用函数指针的方法
void Swap(int *i,int *j)
{
int temp;
temp = *i;
*i = *j;
*j = temp;
}