鱼C论坛

 找回密码
 立即注册
查看: 3334|回复: 7

求助!

[复制链接]
发表于 2018-2-10 13:03:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include<stdio.h>
void swap(int *p,int *q)
{
        int *a;
        a=p;
        p=q;
        q=a;
}
void main()
{
        int b,c,d;
        int *n1,*n2,*n3;
        scanf("%d %d %d",&b,&c,&d);
        n1=&b;
        n2=&c;
        n3=&d;
        if(*n1<*n2)
                swap(n1,n2);
        if(*n1<*n3)
                swap(n1,n3);
        if(*n2<*n3)
                swap(n2,n3);
        printf("%d %d %d",*n1,*n2,*n3);
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-2-10 14:05:51 From FishC Mobile | 显示全部楼层
为什么要交换地址呢?交换值才科学吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2018-2-10 14:10:27 | 显示全部楼层
BngThea 发表于 2018-2-10 14:05
为什么要交换地址呢?交换值才科学吧

为什么交换地址不行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-10 18:16:13 From FishC Mobile | 显示全部楼层
变量加关键字volatile
查下这个关键字就知道了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-11 17:10:16 | 显示全部楼层

当你定义一个变量的时候 系统会自动生成一个空间用来存放变量
好比如酒店里的房间号一样
就算你把号码改变了 但里面的人不会变  
因此只能交换数值 而不可以交换地址
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-11 17:15:09 | 显示全部楼层
int *a ;
a = p ;
这个是错误的 地址没有这样的表达式
可以
int a ;
a = *p ;
*p = *q;
*q = a ;
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-11 20:43:01 From FishC Mobile | 显示全部楼层
菜鸟开始学习 发表于 2018-2-10 14:10
为什么交换地址不行

地址修改总感觉十分危险
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-2-12 16:14:03 | 显示全部楼层
LYHCYQ 发表于 2018-2-11 17:10
当你定义一个变量的时候 系统会自动生成一个空间用来存放变量
好比如酒店里的房间号一样
就算你把号码 ...

假设指针n1指向b=2,地址为1000,指针n2指向c=5,地址为1004,交换地址后n1指向c,地址为1004,n2指向b,地址为1000,然后由大到小输出*n1、*n2.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-7-6 08:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表