C命令行参数的作用是在执行程序时,可以将命令行的参数传值给C程序内部,这样就可以从外部控制程序,而不是在代码内对这些值进行硬编码。命令行参数是使用main函数来处理的,argc是指参数的个数,为int类型;argv[ ]为一个字符串,即char *类型,将该字符串的首地址赋值给字符指针argv[ ],因此argv[ ] 表示一个字符串(其实这是一种隐式转换,具体的理解可以看之前的文章),也用于表示传递给程序的每个参数。下面以具体代码详细说明:
#include <stdio.h> //zsx.cint main( int argc , char* argv[ ] )
{int i;for( i=0 ; i < argc ; i++)printf("argv[%d]=%s",i,argv[i]);return 0;
}[root@localhost work]# gcc -pedantic -pipe -Wall -o zsx zsx.c
[root@localhost work]# ./zsx 12 er 34 ed
argv[0]=./zsx argv[1]=12 argv[2]=er argv[3]=34 argv[4]=ed // argc为参数的个数 argv[]为字符串
由上可以看出,在执行./zsx 12 er 34 ed时,参数个数为5个,则argc的值为5;argv[ ]表示具体每个参数的值,因此可以通过命令行参数,将外部的值传递给程序内部。