24小时热门版块排行榜    

Znn3bq.jpeg
查看: 1966  |  回复: 29
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

as23p

木虫 (小有名气)

[求助] 关于 argc 的值

刚接触C语言没多久,之前一直用Fortran,所以有个地方不太明白,希望大家赐教:
在C里经常用到诸如 int main(int argc, int *argv[]) 的语句,我的问题是参量argc的值是如何获得的呢?在Fortran里,所有的函数参量都是在调用该函数时被赋值的,但C里的main函数没有上级函数调用,实际应用中感觉argc是运行时自动就有值了(即,*argv[]的维数加一),可这到底是怎么做到的啊???听着好像是人工智能
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

as23p

木虫 (小有名气)

引用回帖:
9楼: Originally posted by wangybcn at 2012-08-05 13:34:28
比较好理解,例如我们执行一个可行性文件a.exe,有时候会加一些参数,例如在命令行里执行c:\...\word.exe my.doc,那么会启动一个word,而且这个word会自动打开一个叫my.doc的文件,干这个活儿的是word这个可执行文件 ...

对照C语言的话,你说的word.exe应该相当于咱们将代码编译后生成的可执行文件。如果想要word.exe正确解析参数,是需要将具体的原则写到代码里吧,因为机器顶多能做到识别某个字符,至于识别该怎么做,是变量自加一还是自减一,难道不需要咱们告诉它么?
从你的描述来看,似乎是说 argc 和 argv 与其他的变量不同?这听起来就很奇怪,明明是普通的整型变量和数组。。。所以我觉得这两个东西的初始化应该原则上和代码内部的其他变量是一样的,只不过因为每个程序这过程都相同,所以就单独存放在系统某处了(库文件?),每次编译代码时编译器自动做了这个工作。这只是我的推测,我就是想问是不是这么回事,以及如果是那么关于 argc 的部分放在哪里了
14楼2012-08-06 00:58:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 30 个回答

libralibra

至尊木虫 (著名写手)

骠骑将军

【答案】应助回帖

感谢参与,应助指数 +1
如果你这个函数编译完后叫test.exe
打开dos窗口运行时,输入(假设的): test.exe data.txt,那么argc==2,argv[0] = "test.exe", argv[1] = "data.txt",argc是命令行自动计算的,跟你的输入有关的.
一般写程序如果你明确知道你的函数在main中自动打开文件,读写/操作...,main函数可以无参数
int main()
{
...
}
matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
2楼2012-08-03 16:06:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

as23p

木虫 (小有名气)

引用回帖:
2楼: Originally posted by libralibra at 2012-08-03 16:06:18
如果你这个函数编译完后叫test.exe
打开dos窗口运行时,输入(假设的): test.exe data.txt,那么argc==2,argv = "test.exe", argv = "data.txt",argc是命令行自动计算的,跟你的输入有关的.
一般 ...

我知道argc是自动计算的,我就是想知道它为什么能自己自动计算,是人工智能么???
3楼2012-08-04 00:14:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军

【答案】应助回帖

引用回帖:
3楼: Originally posted by as23p at 2012-08-04 00:14:54
我知道argc是自动计算的,我就是想知道它为什么能自己自动计算,是人工智能么???...

给你一个字符串,你不是也能切割知道有几个空格分隔的子串吗?
控制台也不过是操作系统对于用户的一个接口啊,你运行程序输入的那行命令不就是个长串吗?它接收后按照空格切割一下,个数赋值给argc,子串存在argv[]啊
matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
4楼2012-08-04 05:07:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 085801电气专硕272求调剂 +20 电气李 2026-04-13 22/1100 2026-04-20 00:15 by Equinoxhua
[考博] 湖南大学刘巧玲课题组2026年第二批次博士研究生招生信息 +3 南风观火 2026-04-18 3/150 2026-04-19 21:44 by 淡雅人生27
[考研] 通信工程求调剂!!! +7 zlb770521 2026-04-14 7/350 2026-04-19 20:56 by Equinoxhua
[考研] 26药学专硕105500求调剂 +7 喽哈加油 2026-04-13 8/400 2026-04-19 20:21 by Equinoxhua
[考研] 304求调剂 +8 castLight 2026-04-16 8/400 2026-04-19 17:14 by 中豫男
[考研] 291求调剂 +12 关忆北. 2026-04-14 13/650 2026-04-19 16:50 by 中豫男
[考研] 307中医考研调剂 +9 于以采蘩 2026-04-14 9/450 2026-04-19 08:41 by 烟雨流涯
[考研] 327求调剂 +27 Xxjc1107. 2026-04-13 30/1500 2026-04-19 08:22 by cuisz
[考研] 294求调剂 +15 淡然654321 2026-04-15 15/750 2026-04-19 08:20 by cuisz
[考研] 生物学调剂 +10 纸扇zhishan 2026-04-13 10/500 2026-04-18 21:19 by zqndavala
[考研] 320求调剂 +5 深郊akm 2026-04-17 5/250 2026-04-18 19:52 by 王珺璞
[考研] 收到复试调剂但是去不了 +8 小蜗牛* 2026-04-16 8/400 2026-04-18 11:15 by zixin2025
[考研] 一志愿华中农业071010,320求调剂 +17 困困困困坤坤 2026-04-14 19/950 2026-04-17 20:08 by 关一盏灯cd
[考研] 295分求调剂 +5 ?要上岸? 2026-04-17 5/250 2026-04-17 16:51 by fenglj492
[考研] 322求调剂 +6 tekuzu 2026-04-17 6/300 2026-04-17 13:48 by Espannnnnol
[考研] 一志愿沪9,生物学326求调剂 +9 刘墨墨 2026-04-15 9/450 2026-04-16 17:14 by 崔崔崔cccc
[考研] 求调剂学校 +14 不会吃肉 2026-04-13 16/800 2026-04-15 21:59 by noqvsozv
[考研] 297工科调剂? +14 河南农业大学-能 2026-04-13 15/750 2026-04-15 13:25 by 黑科技矿业
[教师之家] 转长聘了 +7 简单化xn 2026-04-13 7/350 2026-04-14 14:50 by xindong
[考研] 085408光电信息工程专硕355一志愿长春光机所调剂 +6 王ymaa 2026-04-13 13/650 2026-04-14 11:33 by 王ymaa
信息提示
请填处理意见