各位大神,就是想知道c的命令行有什么用,书上讲的没看懂。
我就是想知道为什么要用 int main(int argc,char *argv[])?什么时候会用它?
有的程序里还会用它,直接在程序里定义变量好了,为什么要用命令行?
命令行里除了文件名其他的字符串可以更改,改了有什么意义?
命令行是不是就是声明这个文件要干什么?我试过,在编译器里没什么用啊?
好郁闷 就这个看不懂
这是程序的入口啊,没有它怎么执行? ###### 用过字符操作界面吗?
ls -a
-a 就会被输入到main()中,成为参数 ######比如你想写一个小程序,计算数字1到n之间的总和,这个n由用户输入,这时你就要用main函数的参数了######哦 是这个意思,不能在程序里定义n?###### 谢谢各位,3q ###### 哈,这个是唯一的可变信息的入口。例如:
一个程序可以存在自己的参数配置文件,对该文件解析后设定这些参数。但该文件路径名你想不固定,那么还是需要通过上述参数给入。
c标准支持 main (void)的接口。但是对于我带的团队,仍然禁止使用main(void)。。。 ######argc是参数个数,*argv[]是参数数组,用来接收命令行参数,怎么会没有用.
#include <stdio.h>nano ab.c
#include <stdio.h>
int main(int argc, char *argv[]) {
fprintf(stderr,"argc: %d\n",argc);
int i;
for(i=0;i<argc;i++) {
fprintf(stderr,"argv[%d]: %s\n",i,argv[i]);
}
return 0;
}
编译: gcc ab.c -o ab
运行: ./ab -c10 -n500 http://127.0.0.1/index.php
结果:
argc: 4
argv[0]: ./ab
argv[1]: -c10
argv[2]: -n500
argv[3]: http://127.0.0.1/index.php
Linux上在Bash里运行程序后使用 echo $? 查看返回值.
Windows上在CMD里运行程序后使用 echo %ERRORLEVEL% 查看返回值.
main函数的返回值用于说明程序的退出状态.如果返回0,则代表程序正常退出,返回其它数字的含义则由系统决定.
return 0; 执行 echo $? 值为 0
return 2; 执行 echo $? 值为 2
return 1; 执行 echo $? 值为 1
return -1; 执行 echo $? 值为 255
return -2; 执行 echo $? 值为 254
######
#include <stdio.h>nano ab.c
#include <stdio.h>
int main(int argc, char *argv[]) {
fprintf(stderr,"argc: %d\n",argc);
int i;
for(i=0;i<argc;i++) {
fprintf(stderr,"argv[%d]: %s\n",i,argv[i]);
}
return 0;
}
编译: gcc ab.c -o ab
运行: ./ab -c10 -n500 http://127.0.0.1/index.php
结果:
argc: 4
argv[0]: ./ab
argv[1]: -c10
argv[2]: -n500
argv[3]: http://127.0.0.1/index.php
Linux上在Bash里运行程序后使用 echo $? 查看返回值.
Windows上在CMD里运行程序后使用 echo %ERRORLEVEL% 查看返回值.
main函数的返回值用于说明程序的退出状态.如果返回0,则代表程序正常退出,返回其它数字的含义则由系统决定.
return 0; 执行 echo $? 值为 0
return 2; 执行 echo $? 值为 2
return 1; 执行 echo $? 值为 1
return -1; 执行 echo $? 值为 255
return -2; 执行 echo $? 值为 254
######
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。