标题:  简述以下程序的区别:有关c语言指针的题目
只看楼主
司羽
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2014-6-4
结帖率:100%
已结贴  问题点数:20 回复次数:5 
  简述以下程序的区别:有关c语言指针的题目
  )简述以下程序的区别:
  (1)
   #include<stdio.h>
  int * max(int *x,int *y)
  {int *z;
   if (*x>*y)
       z=x;
   else z=y;
   return z;
  }
  main()
  {int a,b;
   a=3;
   b=5;
   printf("max=%d",max(&a,&b));
  }
  (2)
  #include<stdio.h>
  int  max(int *x,int *y)
  {int  z;
   if (*x>*y)
       z=*x;
   else z=*y;
   return z;
  }
  main()
  {int a,b;
   a=3;
   b=5;
   printf("max=%d",max(&a,&b));
  }
 这两个程序第一个不能运行,第二个运行有错误,答案太长了。
搜索更多相关主题的帖子: include return c语言 
2014-06-04 08:43
TAAAAB
Rank: 7Rank: 7Rank: 7
来 自:湖南
等 级:黑侠
威 望:1
帖 子:243
专家分:635
注 册:2011-5-29
得分:7 
第一个可以运行,只是输出的结果是变量地址。

第二个运行不会有错误,结果是 max=5。

如果你觉得第二个答案太长是不是因为没有 \n ??

人有多懒,编程就有多难。
2014-06-04 09:14
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:4 
程序代码:
#include<stdio.h>

int  max(int *x,int *y)
{
    int  z;
    if (*x>*y) z=*x; else z=*y;
    return z;
}
int main()
{
    int a,b;
    a=13;
    b=5;
    printf("max=%d",max(&a,&b));
}


这个代码没啥问题  不过main前无返回值  不知道是啥教材或老师教出来的

DO IT YOURSELF !
2014-06-04 09:27
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:3 
第一个大致要更改一下

程序代码:
#include<stdio.h>

int*  max(int *x,int *y)
{
    int*  z;
    if (*x>*y) z=x; else z=y;
    return z;
}
int main()
{
    int a,b;
    a=13;
    b=5;
    int* z=max(&a,&b);
    printf("max=%d",*z);
}

DO IT YOURSELF !
2014-06-04 09:30
砖家的谎言
Rank: 12Rank: 12Rank: 12
等 级:禁止访问
威 望:30
帖 子:693
专家分:3898
注 册:2013-12-6
得分:6 
指针代表地址,也可以代表数组或者字符串的首地址,指针不要想得太复杂

我不是砖家,要努力成为砖家。
2014-06-04 10:13
司羽
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2014-6-4
得分:0 
回复 2 楼 TAAAAB
恩,是我搞错了,第一个太长了是因为输出了变量地址,第二个是对的。谢谢
2014-06-04 10:18



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-432441-1-1.html




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

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