指针换值单向传递

#include <stdio.h>

/* int *p;
//p=&a;
*p=100;
printf("%d",*p);
/
/
int a[10];
for(int i=0;i<10;i++)
{
if(i>5&&i<10) a[i]=1; *p=100
else a[i]=i;

}
for(int i=0;i<10;i++)
{printf("%d\t",a[i]);}

*/
/*int a=12,b=23;
int *p1,*p2,*t;//注意:此处t要定义为指针类型,才可以和两个指针变量交换
p1=&a;p2=&b;
if(*p1<*p2)
{
t=p1;p1=p2;p2=t;
}
printf("%d\t%d\t",*p1,*p2);
/
/

int t;
int swep(int *p1,int *p2)
{ if(*p1>*p2)

t=*p1;*p1=*p2;*p2=t;

}

int main()
{
int a=12,b=23;
int *p1,*p2;
p1=&a;p2=&b;
printf("%d\t%d",swep(a,b));
///用指针交换数
/

int main()
{
void swep(int *, int *);// √
// void swep(int ,int ); // 易错
int a=12,b=23;
int *p1,*p2;
p1=&a;
p2=&b;
if(a<b) swep(p1,p2);
printf("%d\t%d\t",a,b);
return 0;
}

void swep(int *p1,int *p2)
{
int t;
t=*p1;
*p1=*p2;
*p2=t;

}
/
/
//交换数 址传递
int main()
{
void swep(int *,int *);
int a=12,b=23;
int *x1,*x2;
x1=&a,x2=&b;
if(a<b) swep(x1,x2);//易误写成swep(*x1,*x2)
printf("%d\t%d\t",a,b);
return 0;
}

void swep(int *x1,int *x2)//表定义了指针变量x1,x2.*x1,*x2表示指向的变量地址
{ int c=0;
int *t=&c;
*t=*x1;*x1=*x2;*x2=*t;
}
/
值传递
/

int main()
{
void swep(int,int);
int a=11,b=2;
if(a>b) swep(a,b);
printf("%d\t%d",a,b);
}
//程序解读:定义两个整型变量a,b。调用swep函数,进行单向传递,
//实参ab传值给形参x1,x2。换值以后形参不能再传给实参
void swep(int x1,int x2)
{
int t;
t=x1;x1=x2;x2=t;
}

//址传递
/

int main()
{
void swep(int*,int*);
int a=12,b=345;
int *x1,*x2;
x1=&a;x2=&b;
if(a<b) swep(x1,x2);
printf("%d\t%d",a,b);
}

void swep(intx1,intx2)
{
int t;

t=*x1;*x1=*x2;*x2=t;

}
*/用指针变量作为函数参数,实现改变主调函数内的变量值改变,保留,并使用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值