对C语言中main函数的参数的问题

#include "stdio.h"
#include "string.h"
main(int argc,char *argv[])
{
int i,len=0;
for(i=1;i<argc;i++)
len+=strlen(argv[i]);
printf("%d\n",len);
}

书上说此程序编译连接生成的可执行文件是exl.exe。若运行时输入带参数的命令行是:ex1 abcd efg 10
则运行的结果是9!
请问如何编译连接生成的可执行文件是exl.exe。。。我把上面的程序输入后只组建后弹出个黑色窗口,显示0.而且无法输入ex1 abcd efg 10

第1个回答  2013-11-11
额,你是初学者还是好好下谭浩强的视频看看吧。从这程序首先看出你写程序不细致。main(int argc,char *argv[]),main()里面既然如此定义,后面在for()里面却写错了写成argc,很不应该。其次,没有从“char **”到“int”的转换,i和argv是没法比较的,int 和 char怎么比较呢???最后你是无法输入,请问没有scanf();或者getchar();语句,你如何输入。那个main()只是提供一个嵌套函数而已,你这个程序缺个主函数。你的C语言基础不杂实,好好加油,希望能帮到你
第2个回答  2013-11-11
int argc,char *argv[]上面两个参数,在控制台方式中,基本没用过,它们的意义argc 参数个数,argv参数列表。用 ex1 abcd efg 10 来运行,可以理解为�0�2argc =3,因为以空格为分隔,有三个参数,而argv 里则是参数内容,当你依次取argv 元素并计算长度,就等同于计算abcdefg10字串的长度。其中各个参数是分别存放在argv的各个元素中的。所以当使用exe方式并附参数执行的时候,输出的就是参数的总长度,此例为9本回答被网友采纳
第3个回答  2013-11-11
这个是带参数的main,你要在控制台下边,输入生成的可执行文件,然后在后边输入参数 或建个快捷,在快捷上添加参数也可以的
第4个回答  2013-11-11
ex1 abcd efg 10 是LINUX 命令 在 gcc 中可以用
相似回答