交换两变量的值

  • 大意:
    用函数实现变量的值的交换,用到指针!
  • 思路:
    该函数要实现变量的值的交换,形参需为两变量的地址。
    1)若不是地址,形参是两个变量,那么传进去的是两个单纯的数值,数值在函数内部做了交换,即函数内的两个局部变量(形参)进行了数值交换,交换后的效果并没有影响到函数外的实参(调用该函数相当于只是给函数提供了两个数值)。
    2)若传给形参的是实参的地址(即指针),那在函数内部通过解引用该指针,可以找到实参的数值,此时再进行交换则交换的是存在实参地址上的数值。交换后的值依然在a和b的地址存放,只不过原来存在a那的数现在存在了b那,存在b那的数现在存在了a那。


(ps:a,b的地址是用十六进制表示的,转成十进制和p,q的值相同)

  • 参考代码:
#include<stdio.h>
#include<stdlib.h>

void swap(int* p, int* q) {
  int tmp=0;
  tmp = *p;
  *p = *q;
  *q = tmp;
  //printf("指针p的值:%d \n指针q的值:%d\n", p, q);
}
int main() {
  int a = 10;
  int b = 20;
  printf("a=%d b=%d\n", a, b);
  //printf("a的地址:%p\nb的地址:%p\n", &a, &b);
  swap(&a,&b);
  printf("a=%d b=%d\n", a, b);
  system("pause");
  return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值