重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
main函数可以不带参数,也可以带参数,这个参数可以认为是 main函数的形式参数。
创新互联凭借专业的设计团队扎实的技术支持、优质高效的服务意识和丰厚的资源优势,提供专业的网站策划、网站设计制作、成都网站建设、网站优化、软件开发、网站改版等服务,在成都10余年的网站建设设计经验,为成都千余家中小型企业策划设计了网站。
C语言规定main函数的参数只能有两个,还规定argc(第一个形参)必须是整型变量,argv( 第二个形参)必须是指向字符串的指针数组。加上形参说明后,main函数的函数头应写为:
int main (int argc,char *argv[])
由于main函数不能被其它函数调用,因此不可能在程序内部取得实际值。那么,在何处把实参值赋予main函数的形参呢? 实际上,main函数的参数值是从操作系统命令行上获得的。当我们要运行一个可执行文件时,在DOS提示符下键入文件名,再输入实际参数即可把这些实参传送到main的形参中去。
DOS提示符下命令行的一般形式为:
C:\可执行文件名 参数 参数……
使用二级指针
eg
#include stdio.h
void func(int **p2p);
int main(void)
{
int *p;
func(p);
printf("%d\n",*p);
return 0;
}
void func(int **p2p)
{
static int a=123;
*p2p=a;
}
有参数,用于传递命令行位置参数到程序里.
例如:
输入长宽,计算矩型面积
void main(int argc,char *argv[]){
float area,w,h;
if (argc 3) {
printf("\007Usage:%s width height\n",argv[0]);
printf("for example:%s 12.3 4.5\n",argv[0]);
exit(0);
}
// 参数0 是程序名,argc参数个数
sscanf(argv[1],"%f",w); // 从参数1取得宽
sscanf(argv[2],"%f",h); // 从参数2取得高
area = w * h;
printf("area=%f\n",area);
exit(0);
}
命令行:
prog.exe 12.3 4.5
int main (int argc,char *argv[]) 或者 int main (int argc,char **argv)
其中第一个表示参数的个数;第二个参数中argv[0]为自身运行目录路径和程序名,argv[1]指向第一个参数、argv[2]指向第二个参数……
测试例子:
#include stdio.h#include string.h
int main(int argc,char *argv[])
{
printf("argc= %d\n",argc);
while(argc--)
{
printf("%s \n",*argv++);
}
return 0;
}