| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3802 人关注过本帖
标题:发两个程序,以视今天下午的学习成果,如果你也是初学者,一起加油!!!
只看楼主 加入收藏
lisngwei
Rank: 1
等 级:新手上路
帖 子:2
专家分:1
注 册:2012-6-29
收藏
得分:0 
函数声明可以放在主函数里面  也可以放在外面  我习惯放在里面  
2012-08-08 23:10
ljzzcm
Rank: 1
等 级:新手上路
帖 子:8
专家分:1
注 册:2010-9-8
收藏
得分:0 
放在mian()上面叫全局变量,不过那种东西虽然方便,不过最好少用。
全局变量在程序的全部执行过程中都占用存储单元,而不是仅在需要时才开辟单元。 使用全局变量过多,会降低程序的清晰性,人们往往难以清楚地判断出每个瞬时各个外部变量的值。在各个函数执行时都可能改变外部变量的值,程序容易出错。因此,要限制使用全局变量。
收到的鲜花
  • demonleer2012-08-09 09:01 送鲜花  10朵   附言:积极参与,优秀评论
2012-08-08 23:26
ljzzcm
Rank: 1
等 级:新手上路
帖 子:8
专家分:1
注 册:2010-9-8
收藏
得分:0 
回复 15楼 马也
如果函数里面有return语句,就会有返回值,然而定义为void后就算有return,也不会有返回值,至于定义int,如果有返回值,也是整形,个人理解 我也是菜鸟
2012-08-08 23:30
w995612220
Rank: 5Rank: 5
等 级:职业侠客
威 望:1
帖 子:139
专家分:313
注 册:2012-6-20
收藏
得分:0 
    好好努力!
2012-08-08 23:48
马也
Rank: 1
等 级:新手上路
帖 子:31
专家分:7
注 册:2012-1-24
收藏
得分:0 
回复 20楼 pangding
恩,谢谢这位版主!我清楚了!以后养成这个习惯,十分感谢您细心额回答!
2012-08-09 11:13
马也
Rank: 1
等 级:新手上路
帖 子:31
专家分:7
注 册:2012-1-24
收藏
得分:0 
以下是引用ljzzcm在2012-8-8 23:26:53的发言:

放在mian()上面叫全局变量,不过那种东西虽然方便,不过最好少用。
全局变量在程序的全部执行过程中都占用存储单元,而不是仅在需要时才开辟单元。 使用全局变量过多,会降低程序的清晰性,人们往往难以清楚地判断出每个瞬时各个外部变量的值。在各个函数执行时都可能改变外部变量的值,程序容易出错。因此,要限制使用全局变量。

这位朋友说的这个概念我已经学习到了,全局变量是从定义开始到程序结束都有效的变量。不过前面大家讨论的是函数声明部分,不是定义全局变量吧。在main函数外边声明接下来用到的函数也会占用存储单元么?
2012-08-09 11:17
马也
Rank: 1
等 级:新手上路
帖 子:31
专家分:7
注 册:2012-1-24
收藏
得分:0 
回复 23楼 ljzzcm
关于return;我还有一些没理解的地方,比如,一个函数只是对一个数组做一些排列的操作,并不涉及到返回值,是否还要在程序中写return?。renturn和return 0;有什么区别?
2012-08-09 11:22
马也
Rank: 1
等 级:新手上路
帖 子:31
专家分:7
注 册:2012-1-24
收藏
得分:0 
以下是引用pangding在2012-8-8 21:45:27的发言:

现在能见到的书可能也只有老谭是讲 void main() 的。

规定要写 int main(),很多现代编译器也已经不支持 void main() 的这种写法了。main 函数是程序的入口,它的名字和形式都是规定的,不允许程序员更改。
从没见过有人质疑 main 的名字,但很多人忽视返回值。一个原因可能是很久很久以前,对这个并没有明文规定。

现在的规定是,main 只有两种合法形式:
int main() {}和
int main(int argc, char *argv[]) {}至于第二种形式,规定又说,第二参数可以使用等效的 char **argv。

老一点的书也可能讲,main 还可以有第三个参数。总之,混乱还是存在的。但主要都是一些历史因素。
做这种规定,自然也有有它的原因。除了技术上原因以外,也有历史上的原因。其实我一直以为,现在已经比较明确了。但是也有人至今在为此争议。

对于初学者,不用太多了解这些细节,只要记得,一写 main 函数就是 int main(),return 0,就行了。
对于一些实现,void main 等价于编译器自动帮你改成 int,并 return 0。

对了,关于这个问题,我还有个事情要问您,如果按您所说,我的调用函数的类型是否也应该把void改成int;(比如我帖子中的这两个调用函数)。或者我可不可以进一步理解为在以后编写函数即使没有返回值的时候不再用void,全用int代替,然后没有返回值就在函数末尾写上return 0;???
2012-08-09 11:28
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
回复 28楼 马也
MSDN上有告诉你不用int main()的资讯,说MSDN不够权威就算了,不用听。

授人以渔,不授人以鱼。
2012-08-09 11:59
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:0 
其它函数不受这个限制,如果程序员确实不需要它返回值的话,就可以声明为 void。

只是 main 函数有很多特殊性。它需不需要返回值不是你认为的,而是另外有人可能会需要它的返回值。
有些书可能会提,如果返回 0 (或宏 EXIT_SUCCESS,定义在 stdlib.h 里) 用于表示成功执行,如果返回任何非零值,表示异常退出,返回值用于指示出错类型。如何程序逻辑不复杂,可以只返回 EXIT_FAILURE,以指示执行出错。

main 还有其它的特殊性。
比如一个可能会被人忽视的规定是 main 函数禁止递归调用。除 main 以外的其它函数没有这个限制。这么规定也有它的原因,其中很重要的一个理由是为了 C 语言的移植性。
2012-08-09 12:10
快速回复:发两个程序,以视今天下午的学习成果,如果你也是初学者,一起加油!! ...
数据加载中...
 
   



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

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