#include <stdio.h>
void swap_1(int a,int b)//error_1
{
int t;
t=a;
a=b;
b=t;
return;
}
void swap_2(int * a,int * b)//error_2
{
int * t;//*t表示int类型
t=a;
a=b;
b=t;
return;
}
void swap_3(int * a,int * b)//right!
{
int t;//交换*a与*b的位置,因此要用到整型t,因为存在t=*p,
//如果形参为int a,则t写成int * t的形式,因为存在着*t=a;
t=*a;//a是int *类型,*a是int类型
*a=*b;
*b=t;
return;
}
int main()
{
int a=2;
int b=3;
swap_1(a,b);//error
swap_2(&a,&b);
swap_3(&a,&b);//&a交给了int * a中的a,a为存放int *类型的地址
printf("a=%d b=%d",a,b);
return 0;
}
指针 交换两个数字的问题的求解以及问题的分析
最新推荐文章于 2024-10-09 23:37:26 发布