求助!
#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);
} 为什么要交换地址呢?交换值才科学吧 BngThea 发表于 2018-2-10 14:05
为什么要交换地址呢?交换值才科学吧
为什么交换地址不行{:9_241:} 变量加关键字volatile
查下这个关键字就知道了 菜鸟开始学习 发表于 2018-2-10 14:10
为什么交换地址不行
当你定义一个变量的时候 系统会自动生成一个空间用来存放变量
好比如酒店里的房间号一样
就算你把号码改变了 但里面的人不会变
因此只能交换数值 而不可以交换地址 int *a ;
a = p ;
这个是错误的 地址没有这样的表达式
可以
int a ;
a = *p ;
*p = *q;
*q = a ; 菜鸟开始学习 发表于 2018-2-10 14:10
为什么交换地址不行
地址修改总感觉十分危险 LYHCYQ 发表于 2018-2-11 17:10
当你定义一个变量的时候 系统会自动生成一个空间用来存放变量
好比如酒店里的房间号一样
就算你把号码 ...
假设指针n1指向b=2,地址为1000,指针n2指向c=5,地址为1004,交换地址后n1指向c,地址为1004,n2指向b,地址为1000,然后由大到小输出*n1、*n2.{:7_122:}
页:
[1]