(转)关于主函数:int main(int&nb…
来源:互联网 发布:淘宝beats旗舰店 编辑:程序博客网 时间:2024/05/23 14:12
argc,argv 用命令行编译程序时有用。
主函数main中变量(int argc,char *argv[ ])的含义
有些编译器允许将main()的返回类型声明为void,这已不再是合法的C++
main(int argc, char *argv[ ], char *env[ ])才是UNIX和Linux中的标准写法。
argc: 整数,用来统计你运行程序时送给main函数的命令行参数的个数
* argv: 字符串数组,用来存放指向你的字符串参数的指针数组,每一个元素指向一个参数
argv[0] 指向程序运行的全路径名
argv[1] 指向在DOS命令行中执行程序名后的第一个字符串
argv[2] 指向执行程序名后的第二个字符串
...
argv[argc]为NULL。
*env:字符串数组。env[ ]的每一个元素都包含ENVVAR=value形式的字符串。其中ENVVAR为环境变量,value 为ENVVAR的对应值。
argc, argv,env是在main( )函数之前被赋值的,编译器生成的可执行文件,main( )不是真正的入口点,而是一个标准的函数,这个函数名与具体的操作系统有关。
经典小例子,对于理解argv[ ]函数很管用:
#include <stdio.h>
int main(int argc, char *argv[ ])
{
printf("%d\n",argc);
while(argc)
printf("%s\n",argv[--argc]);
return 0;
}
假设将其编译为test.exe
在命令行下
test hello
得到的输出结果为
2
hello
test
再例:
#include<unistd.h>
#include<stdio.h>
int main(int argc,char *argv[ ])
{
if(argc==1 || argc>2)
printf("请输入想要编辑的文件名如:fillname");
if(argc==2)
printf("编辑 %s\n",argv[1]);
exit(0);
}
编译该程序:gcc -o edit edit.c
运行:〉edit
结果:请输入想要编辑的文件名如:fillname
运行:〉edit f1.txt
结果:编辑 f1.txt
执行edit时,argc为1,argv[0]指向edit
而执行edit f1.txt时,argc的值为2,argv[0]指向edit,argv[1]指向f1.txt
0 0
- 关于主函数:int main(int&nb…
- (转)关于主函数:int main(int&nb…
- 主函数main中变量(int argc…
- 主函数main中变量(int argc…
- const int *pi与int&nbs…
- int main(int argc,char…
- int* 与 int&
- 【转】Attachment support&nb…
- 辨析主函数:main()/void main()/int main()/int main(void)/int main(int argc, char *argv[])之间的区别
- Matlab normfit函数&nb…
- java for(int i:d)&nbs…
- 关于main() /int main() /int main(void) /void main() /int main(int argc, char*argv[])
- 转: 关于int main(int argc,char *argv[]) 是什么意思
- VS2005 主函数不是int main(),而是int _tmain()
- 关于int main(int argc, char *argc[]) {...}
- 关于int main(int argc,_TCHAR*argv[])
- 关于int main(int argc,char *argv[])
- 关于int main(int argc, char*argv[])
- Android GUI更新过程
- C#制作无边框纸牌游戏
- SVN服务器搭建和使用(二)
- N的阶乘 C/C++ Java 实现
- logback 常用配置详解(二) <appender>
- (转)关于主函数:int main(int&nb…
- SVN服务器搭建和使用(三)
- HTC ONE(M7)免刷去除海苔条教程(国际版、台版通用)
- android:visibility||view.setVisibility(View.VISIBLE)
- Windows7下设置快捷键
- MultiValueMap的用法(一个key对应多个value)
- oauth2.0认证和授权原理以及视频教程
- 开源协议
- Android中的FrameBuffer