鱼C论坛

 找回密码
 立即注册
查看: 2872|回复: 3

C语言新手求助!!!!

[复制链接]
发表于 2017-12-11 23:55:56 | 显示全部楼层 |阅读模式

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

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

x
请问各位大神;
#include <stdio.h>
int  jiaohuan(int *p1,int *p2);
int a=1,b=2;
int *p1,*p2,*p;
void main ()
{       
        p1=&a;
        p2=&b;
        if(a<b)
        {               
                jiaohuan(p1,p2);
        }
        printf("max=%d,min=%d\n",*p1,*p2);
}
int jiaohuan(int *p1,int *p2)
{               
        p=p1;
        p1=p2;
        p2=p;
        return *p1,*p2;
}
这个得到了结果为什么是错误的?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-12-12 00:31:06 | 显示全部楼层
尽量少用全局变量
#include <stdio.h>
int  jiaohuan(int *p1,int *p2);
int a=1,b=2;
int *p1,*p2,*p;
void main ()
{        
        p1=&a;
        p2=&b;
        if(a<b)
        {                
                jiaohuan(p1,p2);
        }
        printf("max=%d,min=%d\n",*p1,*p2);
}
int jiaohuan(int *p1,int *p2)
{      int temp;   //这里定义个临时变量用来暂存要交换的值      
        temp=*p1;
        *p1=*p2;
        *p2=temp;
        // return *p1,*p2;   //交换地址里面的值 不用返回
}

看课程的代码比效易懂:
#include <stdio.h>

void swap(int *a, int *b);

void swap(int *a, int *b)
{
        int temp;

        printf("In swap互换前: a=%d, b=%d\n", *a, *b);
        temp = *a;
        *a = *b;
        *b = temp;

        printf("In swap互换后: a=%d, b=%d\n", *a, *b);

}

int main()
{
        int a = 3, b = 5;

        printf("In main互换前: a=%d, b=%d\n", a, b);
        swap(&a, &b);
        printf("In main互换后: a=%d, b=%d\n", a, b);

        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-12 08:22:07 From FishC Mobile | 显示全部楼层
1.你使用全局变量,就不需要为函数设置参数了,因为全局变量可以在函数中直接使用,你这样做只是把全局变量的值赋值给了函数的参数函数的参数函数结束自动销毁了
2.你函数里面所进行的交换只是交换了两个指针变量的值,并没有交换他们所指向内存的值
3.return不能换回多个值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-12 08:57:46 | 显示全部楼层
不能这样return
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-1 03:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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