求问个c语言问题,指针数组做main函数的型参到底是什么意思啊 如这道例题里的argc和argv都

求问个c语言问题,指针数组做main函数的型参到底是什么意思啊 如这道例题里的argc和argv都哪来的啊

因为你平常编写C程序都是直接在程序里面要求输入然后处理。但是真正实用的C程序一般是生成一个exe文件,在命令行中输入这个文件名然后在后面追加参数来实现特定的功能。
argc和argv就是实现这个的,argc表示命令后面跟的参数个数,argv指针数组用于存放这些参数,其中argv[0]表示程序的完整路径。
你可以自己写个程序看看,在程序里直接读取argv里的参数然后输出。编译后在命令行下输入;
你的程序名.exe 参数1 参数2追问

还是没懂 就是说这两个单词是固定的而不是自己定义的被

还有那个 命令行是什么啊 怎么打开

追答

比如我写了这个代码:

#include
int main(int argc, char *argv[])
{
if(argc > 1)
printf("%d\t%s\t%s",argc,argv[0],argv[1]);
return 0;
}

编译执行后生成的exe文件为test.exe.
那么我在命令行跳转到test.exe文件所在目录后,执行
test.exe 12
这个命令之后,输出是:
2 test.exe 12
即一共有2个参数,一个是默认的路径参数,一个是输入的12这个参数。
哦,命令行就是windows的命令行窗口啊,就是你运行C程序时出现的那个黑框。点开始--在运行栏填cmd就能打开了。通过cd命令跳转到指定的目录下。

追问

如何在命令行里跳转到文件所在目录?命令行就是运行cmd吗,可我的怎么是这样

这只在c盘里工作啊

追答

所以你要使用命令进行跳转啊,用dir命令可以查看当面目录的子目录,比如你的桌面目录(Desktop)就是你图上这个目录的子目录,那么用命令: cd Desktop就能完成跳转了。
如果你的exe文件在另一个盘里,比如D盘根目录,那么输入 d: 就可以跳转到D盘了。

追问

我只是跳转到f盘里了 但是无法继续跳转进目录啊

麻烦你看接下来我该怎么打

太不清晰了 我一个一个拍吧 最后一个是我写的代码

追答

看样子,你的程序名叫hello,位于F盘的test目录下?
现在已经跳转到F盘了,然后输入:
cd test
就进入test目录了,就可以输入hello 参数1 参数2 进行测试了。
当然也可以不用继续跳转,直接输入 test\hello 参数1 参数2 命令。

追问

嗯嗯出来啦

但是那个可以再多问个问题吗

书上写的划线的地方是什么意思啊 那个后缀名是什么时候用啊

追答

划线部分没什么特别的意思啊,就是说如果想要你的程序支持命令+N个参数的方式读取参数,就需要在编程时给程序的main函数提供argv和argc形参来保证命令后的参数能被程序读入。
这样就不需要运行程序的过程中手动一个个输入参数了。
就是最开始回答的意思。
后缀名是什么意思?你指的是hello.exe的后缀exe吗?那个写命令时可以有也可以没有,命令行会自动识别的。

追问

后缀名是那个_string

先给你好评吧

追答

哦,那个不是后缀,就是习惯上一个变量由多个单词组成时用下划线作连接符,没什么特别的。例子里就是指代第一个字符串和第二个字符串,便于你阅读而已。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-12-13
main函数的参数是用户在启动此程序的时候传入的,一种是通过快捷方式,一种是通过命令行:
比如你把记事本程序notepad.exe发送一个快捷方式到桌面,然后右击快捷方式进入属性页面,那个目标栏里有notepad.exe的路径,你在路径后面加一个空格然后输入的字符串就是参数了,比如在D盘下有一个名为1.txt记事本,你在参数里写入d:\1.txt后,你再双击此快捷方式,它会直接打开1.txt文件。
用命令行就可以在cmd里输入notepad.exe d:\1.txt追问

还是没懂额 这个记事本程序是自己写的吗

那我书上的这个例子里的argc和argv是怎么用的啊 可以结合这个说一下吗

相似回答