C语言 指针数组做MAIN函数的形参

来源:百度知道 编辑:UC知道 时间:2024/06/01 02:13:48
main(int argc,char *argv[])
主函数里面的形参的值,是谁传递给它的?
可以定义一个函数,然后传给它值么?

谭浩强C语言里面说这部分的时候

main(int argc,char *argv[])
{wihile(argc-->1)
printf("%s\n",*++argv);
}
上面说输入的命令行参数为
file China Beijing
然后输出结果为
China Beijing
上面的程序好像没有用输入函数啊?怎么得到这个结果的?
它这个函数形参的值到底是怎么来的?是别的函数传递的还是直接从键盘上取的?
迷糊~DOS状态下操作的?不懂

是操作系统给的,对于操作系统来说运行输入的file China Beijing就是三个参数,所以argc=3,同时argv指针数组长度也为3,这里三个指针分别指向"file" ,"China" ,"Beijing";
开始argc-->1为真,所以执行printf("%s\n",*++argv);argv后移一个位置到"China",输出该字符串,后面依次类推。直到while结束。

这是在DOS下进行操作的,在DOS下输入file China Beijing,file打开file文件,将file China Beijing这三个字符串的首地址传递给指针数组argv

编译器传的,可以在编译器的设置里面进行设置