免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: _HellAngel_
打印 上一主题 下一主题

[C] 请教一个关于main()函数的问题。。(新手请教) [复制链接]

论坛徽章:
1
白羊座
日期:2014-03-22 18:23:03
11 [报告]
发表于 2013-01-13 21:02 |只看该作者
回复 9# folklore

恩。。历史神马的最好玩了。。。
   

论坛徽章:
11
摩羯座
日期:2013-09-16 11:10:272015亚冠之阿尔萨德
日期:2015-06-12 22:53:29午马
日期:2014-04-15 11:08:53亥猪
日期:2014-03-02 23:46:35申猴
日期:2013-12-06 22:07:00亥猪
日期:2013-11-28 12:03:13双鱼座
日期:2013-11-21 14:43:56亥猪
日期:2013-10-23 10:55:49处女座
日期:2013-10-17 18:15:43午马
日期:2013-09-27 17:40:4215-16赛季CBA联赛之青岛
日期:2016-06-22 00:45:55
12 [报告]
发表于 2013-01-13 21:54 |只看该作者
_HellAngel_ 发表于 2013-01-13 18:38
在支持C语言的环境中,可以在程序开始执行时将命令行参数传递给程序。调用主函数main时,……


如果你对这里所谓的“支持C语言的环境”之“环境”,以及函数main的调用者缺乏直观体验的话,那么,你在这个问题上,恐怕还是只会停留在似懂非懂阶段。

图形化的IDE,可能会妨害初学者在这方面的直观感受。

楼主你的开发环境是怎样的?



论坛徽章:
1
白羊座
日期:2014-03-22 18:23:03
13 [报告]
发表于 2013-01-13 22:08 |只看该作者
回复 12# Ager

额。。。坦白说。。鉴于楼主的硬盘还在路上。。。楼主现在没有开发环境= =。。楼主现在写程序用的全是记事本= =。。。
   

论坛徽章:
11
摩羯座
日期:2013-09-16 11:10:272015亚冠之阿尔萨德
日期:2015-06-12 22:53:29午马
日期:2014-04-15 11:08:53亥猪
日期:2014-03-02 23:46:35申猴
日期:2013-12-06 22:07:00亥猪
日期:2013-11-28 12:03:13双鱼座
日期:2013-11-21 14:43:56亥猪
日期:2013-10-23 10:55:49处女座
日期:2013-10-17 18:15:43午马
日期:2013-09-27 17:40:4215-16赛季CBA联赛之青岛
日期:2016-06-22 00:45:55
14 [报告]
发表于 2013-01-13 22:11 |只看该作者
本帖最后由 Ager 于 2013-01-13 22:13 编辑
_HellAngel_ 发表于 2013-01-13 22:08
回复 12# Ager
楼主现在没有开发环境= =。。楼主现在写程序用的全是记事本= =。。。


记事本也无所谓(别告诉我,你的记事本是"得力"或"渡边"牌的。。。),关键是:你是怎么让你的代码成为一个可以执行的程序的?然后,又如何去执行这个可执行程序的呢?

有些初学者,将记事本所保存的.txt文件,重命名其扩展名为.exe,以为这样就成了。我相信,楼主是肯定不会这样做的。



论坛徽章:
59
2015年亚洲杯之约旦
日期:2015-01-27 21:27:392015年亚洲杯之日本
日期:2015-02-06 22:09:41拜羊年徽章
日期:2015-03-03 16:15:432015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015元宵节徽章
日期:2015-03-06 15:50:392015年亚洲杯之阿联酋
日期:2015-03-19 17:39:302015年亚洲杯之中国
日期:2015-03-23 18:52:23巳蛇
日期:2014-12-14 22:44:03双子座
日期:2014-12-10 21:39:16处女座
日期:2014-12-02 08:03:17天蝎座
日期:2014-07-21 19:08:47
15 [报告]
发表于 2013-01-13 22:11 |只看该作者
回复 13# _HellAngel_
NB

   
















论坛徽章:
1
白羊座
日期:2014-03-22 18:23:03
16 [报告]
发表于 2013-01-13 22:27 |只看该作者
回复 14# Ager

额。。。楼主刚才急着洗澡。。所以省略了。= =。。。楼主后来证实那台残破不堪的老电脑的确是硬盘坏了。。额。。。后面的。。噢。。楼主把后缀改成了。。.c。。。然后。。。鉴于楼主是在Windows平台上。。。就用Ager大神你以前说的命令执行的。。。楼主去洗个脸。。

论坛徽章:
0
17 [报告]
发表于 2013-01-13 22:28 |只看该作者
回复 12# Ager

我有一个浅见不知当讲不当讲……(按照一般电视剧的尿性这里应该会回答请讲)……给新手讲到「执行可执行文件的时候会有某个幕后黑手调用 main 并且把参数填好」就行了,往细了说东西越扯越多……

论坛徽章:
19
CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-09-18 15:15:15CU大牛徽章
日期:2013-05-20 10:46:44CU大牛徽章
日期:2013-05-20 10:46:38CU大牛徽章
日期:2013-05-20 10:46:31CU大牛徽章
日期:2013-05-20 10:46:25CU大牛徽章
日期:2013-05-20 10:46:18CU大牛徽章
日期:2013-04-17 11:19:51CU大牛徽章
日期:2013-04-17 11:19:42CU大牛徽章
日期:2013-04-17 11:19:37CU大牛徽章
日期:2013-04-17 11:19:32CU大牛徽章
日期:2013-04-17 11:19:28
18 [报告]
发表于 2013-01-13 22:36 |只看该作者
回复 1# _HellAngel_


    C语言做的程序起初是在命令行方式运行的,命令行方式运行时,可以给程序给初始参数,除此之外,你还可以看到C语言的main()函数应当返回一个整型数据,正常是0,出现异常时1。
    C语言程序也可以不带参数运行,最明显的例子就是在图形界面下双击运行,因此可以写成main();
    基于上一条原因,很多编译器做的控制台程序在结束时不会默认加上system("pause");,因此出现了双击后,程序运行结束,控制台窗口立即关闭。貌似只有VC6.0会在控制台程序默认加上system("pause");因此,很多人用VC编译运行程序时,可以看到最终结果,而用Dev C编的程序就不会看到最终结果

论坛徽章:
11
摩羯座
日期:2013-09-16 11:10:272015亚冠之阿尔萨德
日期:2015-06-12 22:53:29午马
日期:2014-04-15 11:08:53亥猪
日期:2014-03-02 23:46:35申猴
日期:2013-12-06 22:07:00亥猪
日期:2013-11-28 12:03:13双鱼座
日期:2013-11-21 14:43:56亥猪
日期:2013-10-23 10:55:49处女座
日期:2013-10-17 18:15:43午马
日期:2013-09-27 17:40:4215-16赛季CBA联赛之青岛
日期:2016-06-22 00:45:55
19 [报告]
发表于 2013-01-13 22:36 |只看该作者
本帖最后由 Ager 于 2013-01-13 22:37 编辑
timothyqiu 发表于 2013-01-13 22:28
回复 12# Ager

往细了说东西越扯越多……


是唉,那是肯定滴,呵呵。。

我是担心,楼主对于“第二个参数(称为argv,用于参数向量)是一个指向字符串数组的指针,其中每个字符串对应一个参数。我们通常用多级指针处理这些字符串。” 这段话中的“参数向量”以及“多级指针”,恐怕还是似懂非懂。

如果有个实际的例子,让楼主直观地体会一下,什么是函数main的Caller,又是怎样透过参数进行Calling的,那样的话,就比较言之有物。。

当然,如果楼主已经充分理解了指针(及数组),以及指针(或数组)如何作为参数传递给Callee,那么,就应该能通过形而上地方式,猜度出这里为什么要有个“int argc”,及其它和char *argv[]会是什么样子的。

呵呵。。。。




论坛徽章:
0
20 [报告]
发表于 2013-01-13 22:37 |只看该作者
回复 19# Ager


    Ager,我有事情找你
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP