学习代师 发表于 2021-2-28 12:42:06

对输入的两个整数按大小顺序输出,求助求助,急

#include <stdio.h>
int *p1, *p2;
void jiaohuan(int m, int n);
int main()
{
    int a, b;
    printf("请输入\n");
    scanf("%d %d", &a, &b);
    jiaohuan(a,b);
    printf("a = %d, b= %d\n",a, b);
    printf("max = %d, min = %d\n",*p1, *p2);

}
void jiaohuan(int m, int n)
{
    int p;
    p1 = &m;
    p2 = &n;
    if(m < n)
    {
      p = *p1;
      p1 = *p2;
      *p2 = p;
    }
}
对输入的两个整数按大小顺序输出,大神这样写为什么最大值和最小值不显示呀
谢谢

chxchxkkk 发表于 2021-2-28 12:44:47

void jiaohuan(int m, int n)
这样是交换不了的,传值和传地址的区别是常识。
void jiaohuan(int *m, int *n)

qiuyouzhi 发表于 2021-2-28 13:58:00

首先,函数的参数m, n都是传入参数的副本,取址也只是取副本的地址。
而且函数内定义的局部变量是不能在别的地方访问的..
页: [1]
查看完整版本: 对输入的两个整数按大小顺序输出,求助求助,急