指针-两个数的交换

#include <iostream>

using namespace std;

 

void pswap(int * p, int *q);

 

int main()

{

    int a, b;

    cin >> a >> b;     // 输入两个整数

    pswap(&a,&b);     // 调用pswap函数,交换a、b的值

    cout << a << " " << b << endl;     // 输出a、b的值

    return 0;

}

 

//函数pswap:交换指针p和q指向的单元中的整数值

//参数:p,q-int类型指针,指向要交换的整数

void pswap(int * p, int *q)

{

    // 请在此添加代码,实现函数pswap

    /********** Begin *********/

    

int a = *p;

*p = *q;

*q = a;

//主要是写这里,以前一直搞不懂用一个a如何交换

实际上是*p,*q,a在这里相当于三个数,指针所指向的是一个首地址,实际上这个地址所代表的空间是一个数

所以此处交换两个数就是相当于三个数相交换。

想不出是把指针想的太复杂

    

    /********** End **********/

}

代码是从educoder  c&c++程序设计上复制的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值