网站营销方式,公司注册网络推广,杭州哪里做网站好,c 网站开发调试《函数值的交换》
交换函数的几种方式#xff1a;
(1)
//error
int Swap1(int a,int b)
{
int tmp;
tmp a;
a b;
b tmp;
return 0;
} 在函数Swap1中#xff0c;a和b的地址的值并没有交换。只是把10和20赋给了a和b#xff0c;a和b原本的值并没有改变。
(2)
#…《函数值的交换》
交换函数的几种方式
(1)
//error
int Swap1(int a,int b)
{
int tmp;
tmp a;
a b;
b tmp;
return 0;
} 在函数Swap1中a和b的地址的值并没有交换。只是把10和20赋给了a和ba和b原本的值并没有改变。
(2)
#includestdio.h
int Swap2(int *p1,int *p2)//error
{
int *tmp;
tmp p1;
p1 p2;
p2 tmp;
return 0;
}
int main()
{
int a 10;
int b 20;
printf(%d %d\n,a,b);
Swap2(a,b);
printf(%d %d\n,a,b);
return 0;
} 在函数Swap2中指针p1和p2分别指向a和b的地址交换指针p1和p2只是让指针p1指向b指针p2指向aa和b的值还是没有交换。
(3)
#includestdio.h
int Swap3(int *p1,int *p2)
{
int *tmp;
*tmp *p1;
*p1 *p2;
*p2 *tmp;
return 0;
}
int main()
{
int a 10;
int b 20;
printf(%d %d\n,a,b);
Swap3(a,b);
printf(%d %d\n,a,b);
return 0;
} *tmp是一个野指针又叫做悬挂指针野指针是指没有指向有效能访问的地址的指针。
注一个指针要想修改另一个函数的数据必须传指针和解引用
一个变量只能访问自己定义的变量而不能随机访问一个变量所以系统会崩溃掉。
4
#includestdio.h
int Swap(int *p1,int *p2)//true
{
int tmp;
tmp *p1;
*p1 *p2;
*p2 tmp;
return 0;
}
int main()
{
int a 10;
int b 20;
printf(%d %d\n,a,b);
Swap(a,b);
printf(%d %d\n,a,b);
return 0;
} 这个函数里既传了指针又进行了解引用把*p1解引用的值a赋给tmp这个变量把*p2解引用的值b赋给p1,把*p2解引用的值b赋给p2这样就交换了a和b的值。