| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1778 人关注过本帖
标题:我错了还是老师错了?
只看楼主 加入收藏
windydfl
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2007-8-2
收藏
 问题点数:0 回复次数:31 
我错了还是老师错了?
以下程序是书上的内容,里面的 return sum; 要和不要都能运行.(我试过了!不信你自己试!)
 但老师说理论上要加上,因为要返回sum !他也解释不了!请大家帮忙

myadd (int *a,int *b)
{int sum;
sum=*a + *b;
return sum;
}
main()
{int x,y,z;
printf("Enter x,y:");scanf("%d%d",&x,&y);
z=myadd(&x,&y);
printf("%d+%d=%d\n",x,y,z);

}

[此贴子已经被作者于2007-8-2 16:29:06编辑过]

搜索更多相关主题的帖子: 老师 
2007-08-02 16:25
pinglideyu
Rank: 3Rank: 3
来 自:武汉工程大学
等 级:论坛游侠
威 望:1
帖 子:735
专家分:140
注 册:2007-1-7
收藏
得分:0 
不要绝对是不行的....
它应该是有返回值的.容我在想想,怎么可能会出现你说的那种情况呢.
有一个问题我想请问一下喔,为什么不是这个呢:
int myadd (int *a,int *b)
{int sum;
sum=*a + *b;
return sum;
}

~~我的明天我知道~~
2007-08-02 16:28
anelwl
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2007-7-26
收藏
得分:0 
肯定是需要加的啦,因为main()函数里z=myadd(&x,&y);表明myadd()函数必须返回一个值!

2007-08-02 16:29
windydfl
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2007-8-2
收藏
得分:0 

书上说 : 因为省略函数返回值的类型名, 计算机则默认为 int

2007-08-02 16:34
anelwl
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2007-7-26
收藏
得分:0 
回复:(windydfl)书上说 : 因为省略函数返回值的类...
书上说的省略int其实是省略的这里(int) myadd (int *a,int *b);一般的函数前面必须写名返回值类型,只有为int型才可以缺省

2007-08-02 16:44
windydfl
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2007-8-2
收藏
得分:0 

回复:(anelwl)说 的:
我说的就是这个意思,有什么歧义吗?

[此贴子已经被作者于2007-8-2 16:49:58编辑过]

2007-08-02 16:49
anelwl
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2007-7-26
收藏
得分:0 
回复:(windydfl)回复:(anelwl)说 的:我说的就是...
但是此程序的return sum;是不可以缺省的,如果缺省的话就等于函数没有输出接口了!

2007-08-02 16:51
windydfl
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2007-8-2
收藏
得分:0 
回复:(anelwl)回复:(windydfl)回复:(anelwl)说:
 理论一套,实践又一套!那请你解释为什么去掉 
return sum;程序还能正常运行!!
2007-08-02 16:57
bupthehe
Rank: 1
等 级:新手上路
帖 子:61
专家分:0
注 册:2007-8-2
收藏
得分:0 
以下是引用windydfl在2007-8-2 16:57:55的发言:
回复:(anelwl)回复:(windydfl)回复:(anelwl)说:
 理论一套,实践又一套!那请你解释为什么去掉 
return sum;程序还能正常运行!!

不正常吧?
能运行是不错,可是算出来的结果就不对
举个例子,输入2 3,结果计算出来的是1245052

也就是说,因为你没有指定返回的数,所以系统任意反会了一个数给你这个Z赋直了

你自己可以试一下

2007-08-02 17:08
cwande
Rank: 2
等 级:新手上路
威 望:3
帖 子:333
专家分:0
注 册:2006-8-18
收藏
得分:0 
能运行是一回事,程序对错又是另外一回事
难道你认为能运行就代表你的程序是对的吗??????????

汗,都懒得写代码了.......... cheat了一个威望,哈.....
2007-08-02 17:14
快速回复:我错了还是老师错了?
数据加载中...
 
   



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

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