| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 975 人关注过本帖
标题:求大神指教,关于指针的
只看楼主 加入收藏
我想成为大神
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2014-9-21
结帖率:75%
收藏
已结贴  问题点数:10 回复次数:14 
求大神指教,关于指针的
昨天考试的题目,给出四个形参a b c d求出其中的最大值和最小值,最大值放在a中,最小值放在d中,输出a,b,c,d;
需要编译的fun函数式
void fun(int *a,int *b,int *c,int *d)
{
}
去大神填内容。我不管填什么,我输入1 2 3 4,结果还是1 2 3 4;我百度了一下,好像是说只改变了地址,没有改变其中的内容。
新手,只有20分,就给10分了。
搜索更多相关主题的帖子: 百度 最大值 
2014-09-21 08:53
wssy213
Rank: 12Rank: 12Rank: 12
来 自:湖南
等 级:贵宾
威 望:10
帖 子:967
专家分:3703
注 册:2014-6-6
收藏
得分:0 
你的思路是怎样的?

坚持----------------------------------唯一的道路
shit ! ! !
2014-09-21 08:58
vvvcuu
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:12
帖 子:353
专家分:1253
注 册:2014-4-22
收藏
得分:0 
去查看一下实参和形参的参数传递机制相关内容。

代码测试环境:  WinXP+C-Free5.0.
2014-09-21 11:12
code_farmer
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:29
专家分:117
注 册:2014-4-21
收藏
得分:5 
值传递和地址传递,可以参考下面这个例子
程序代码:
int fun1(int *a, int *b)
{
    if(*a < *b)
        return *a;
    else
        return *b;
}

int main(void)
{
    int a = 3;
    int b = 2;
    int ret;

    ret = fun1(&a, &b);
    printf("ret = %d\n", ret);

    return 0;
}
2014-09-21 12:02
erty1001
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:331
专家分:1433
注 册:2014-8-31
收藏
得分:5 
简单说说:
既然是新手问。。。嘻嘻
先说如何调用,int a=1,b=2,c=3,d=4;
fun(&a,&b,&c,&d);

再说函数定义如何实现,可以这样

#include<iostream.h>

void fun(int *a,int *b,int *c,int *d)
{
    if(*b>*a) {*a=*a^*b;*b=*a^*b;*a=*a^*b;}
    if(*c>*a) {*a=*a^*c;*c=*a^*c;*a=*a^*c;}
    if(*d>*a) {*a=*a^*d;*d=*a^*d;*a=*a^*d;}
    if(*c>*b) {*b=*b^*c;*c=*b^*c;*b=*b^*c;}
    if(*d>*b) {*b=*b^*d;*d=*b^*d;*b=*b^*d;}
    if(*d>*c) {*c=*c^*d;*d=*c^*d;*c=*c^*d;}
}

int main()
{
    int a=1,b=2,c=3,d=4;
    fun(&a,&b,&c,&d);
    cout<<"a="<<a<<" b="<<b<<" c="<<c<<" d="<<d<<endl;
    return 0;
}
2014-09-21 12:17
ditg
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:16
帖 子:852
专家分:1937
注 册:2014-4-10
收藏
得分:0 
不好意思,走错门了,呵呵

梦想拥有一台龙芯3A-4000
2014-09-21 14:42
魑魅魍魉!
Rank: 3Rank: 3
来 自:亲爱MM肚子里!
等 级:论坛游侠
威 望:1
帖 子:61
专家分:149
注 册:2014-5-3
收藏
得分:0 
楼上的走错门,真牛!
2014-09-21 16:38
我想成为大神
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2014-9-21
收藏
得分:0 
回复 6 楼 ditg
0.0
2014-09-21 20:21
我想成为大神
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2014-9-21
收藏
得分:0 
回复 2 楼 wssy213
我的
void fun(int *a,int *b,int *c,int *d)

{
    int *max;
    int *min;
         max=a>(b>(c>d?c:d)?b:(c>d?c:d))?a:(b>(c>d?c:d)?b:(c>d?c:d));
                 min=a<(b<(c<d?c:d)?b:(c<d?d:d))?a:(b<(c<d?c:d)?b:(c>d?c:d));
       if((max==a&&min==d)||(max==d&&min=a))
{
            *a=max;*b=b;*c=c;*d=min;
}
else {
           *b=a;*a=max;*c=d;*d=min;
}
中间是有错误,可是为什么我输入1 2 3 4后,输出的也是1 2 3 4;
2014-09-21 20:54
我想成为大神
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2014-9-21
收藏
得分:0 
回复 4 楼 code_farmer
谢谢你,学C这个指针是个难点。。做了题目,有的懂了,有的还是模糊。嘿嘿
2014-09-21 20:59
快速回复:求大神指教,关于指针的
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.050320 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved