void main(int argc, char *avgv[])的理解
来源:互联网 发布:淘宝店图片轮播制作 编辑:程序博客网 时间:2024/05/01 01:35
main函数的参数
我们经常用的main函数都是不带参数的。因此main 后的括号都是空括号。实际上,main函数可以带参数,这个参数可以认为是 main函数的形式参数。C语言规定main函数的参数只能有两个, 习惯上这两个参数写为argc和argv。因此,main函数的函数头可写为: main (argc,argv)C语言还规定argc(第一个形参)必须是整型变量,argv( 第二个形参)必须是指向字符串的指针数组。加上形参说明后,main函数的函数头应写为:
main (argc,argv)
int argv;
char *argv[];或写成:
main (int argc,char *argv[])
由于main函数不能被其它函数调用, 因此不可能在程序内部取得实际值。那么,在何处把实参值赋予main函数的形参呢? 实际上,main函数的参数值是从操作系统命令行上获得的。当我们要运行一个可执行文件时,在DOS提示符下键入文件名,再输入实际参数即可把这些实参传送到main的形参中去。
DOS提示符下命令行的一般形式为: C:\>可执行文件名 参数 参数……; 但是应该特别注意的是,main 的两个形参和命令行中的参数在
位置上不是一一对应的。因为,main的形参只有二个,而命令行中的参数个数原则上未加限制。argc参数表示了命令行中参数的个数(注意:文件名本身也算一个参数),argc的值是在输入命令行时由系统按实际参数的个数自动赋予的。例如有命令行为: C:\>E6 24 BASIC dbase FORTRAN由于文件名E6 24本身也算一个参数,所以共有4个参数,因此argc取得的值为4。argv参数是字符串指针数组,其各元素值为命令行中各字符串(参数均按字符串处理)的首地址。 指针数组的长度即为参数个数。数组元素初值由系统自动赋予。其表示如图6.8所示:
main(int argc,char *argv){
while(argc-->1)
printf("%s\n",*++argv);
}
我们经常用的main函数都是不带参数的。因此main 后的括号都是空括号。实际上,main函数可以带参数,这个参数可以认为是 main函数的形式参数。C语言规定main函数的参数只能有两个, 习惯上这两个参数写为argc和argv。因此,main函数的函数头可写为: main (argc,argv)C语言还规定argc(第一个形参)必须是整型变量,argv( 第二个形参)必须是指向字符串的指针数组。加上形参说明后,main函数的函数头应写为:
main (argc,argv)
int argv;
char *argv[];或写成:
main (int argc,char *argv[])
由于main函数不能被其它函数调用, 因此不可能在程序内部取得实际值。那么,在何处把实参值赋予main函数的形参呢? 实际上,main函数的参数值是从操作系统命令行上获得的。当我们要运行一个可执行文件时,在DOS提示符下键入文件名,再输入实际参数即可把这些实参传送到main的形参中去。
DOS提示符下命令行的一般形式为: C:\>可执行文件名 参数 参数……; 但是应该特别注意的是,main 的两个形参和命令行中的参数在
位置上不是一一对应的。因为,main的形参只有二个,而命令行中的参数个数原则上未加限制。argc参数表示了命令行中参数的个数(注意:文件名本身也算一个参数),argc的值是在输入命令行时由系统按实际参数的个数自动赋予的。例如有命令行为: C:\>E6 24 BASIC dbase FORTRAN由于文件名E6 24本身也算一个参数,所以共有4个参数,因此argc取得的值为4。argv参数是字符串指针数组,其各元素值为命令行中各字符串(参数均按字符串处理)的首地址。 指针数组的长度即为参数个数。数组元素初值由系统自动赋予。其表示如图6.8所示:
main(int argc,char *argv){
while(argc-->1)
printf("%s\n",*++argv);
}
- void main(int argc, char *avgv[])的理解
- 理解 void main(int argc, char** argv)
- main() / void main() / int main() / int main(void) / int main(int argc, char *argv[])的区别
- 关于 int main(int argc,char*arg[])与 int main(int argc,char**argv)的理解
- 辨析主函数:main()/void main()/int main()/int main(void)/int main(int argc, char *argv[])之间的区别
- 关于void main(int argc, char *argv[ ])
- 关于void main(int argc, char *argv[ ])
- 关于main() /int main() /int main(void) /void main() /int main(int argc, char*argv[])
- 关于int main(int argc,char*argv[])的理解
- 对int main(int argc,char* argv[])的理解
- 理解 int main(int argc,char *argv[])
- int main(int argc, char* argv[])理解
- 关于main(int argc, char* argv[])的理解
- 关于main(int argc, char* argv[])的理解
- 关于main(int argc, char* argv[])的理解
- c++main(int argc,char *argv[])的理解
- 关于main(int argc, char* argv[])的理解
- 关于main(int argc, char* argv[])的理解
- JS 实现点击<a> 标签的时候给其换背景
- hdu 4115 Eliminate the Conflict ( 2-sat )
- CMMI——CM:Configuration Management,配置管理
- SurfaceHolder简述
- java中字符串 MD5密码的加密与验证
- void main(int argc, char *avgv[])的理解
- 我的设计模式学习笔记------>Java设计模式总概况
- 『other』开发者拒绝写技术博客的常见理由
- linux 文件编程
- poj 3592 Instantaneous Transference(强连通分量+dp)
- 红黑树
- http
- UVa:10099 The Tourist Guide
- [转]RedHat5 开启telnet,ftp等服务