对输入的两个整数按大小顺序输出

本文探讨了如何使用C语言中的指针交换两个整数的值,通过实例展示了交换函数swap的问题,重点在于理解指针赋值和形参与实参的关系。错误示例揭示了仅交换指针地址而非指向的值的误区,并提供正确的方法实现值的交换。
摘要由CSDN通过智能技术生成

对输入的两个整数按大小顺序输出

尝试调用swap函数来实现题目要求在函数中改变形参(指针变量)的值,希望能由此改变实参(指针变量)的值

  • 代码如下:
#include<stdio.h>
int *p,*q;
void swap(int *p,int *q);
int main()
{
    int a,b;
    printf("Input a,b:\n");
    scanf("%d%d",&a,&b);
    p=&a;
    q=&b;
    printf("before:a=%d,b=%d\n",a,b);
    if(a<b){
        swap(p,q);
    }
    return 0;
}
void swap(int *p,int *q)
{
    int t;
    t=*p;
    *p=*q;
    *q=t;
    printf("after:a=%d,b=%d\n",*p,*q);


}

运行结果:
在这里插入图片描述
在这里插入图片描述

  • 错误示例:
    {
    int *t;
    t=p;
    p=q;
    q=t;
    }
    这样只是交换了p,q两个指针,并没有交换两个指针里面的值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值