我觉得举实例可能让题主更容易理解这个。
假如在cmd窗口下运行命令“d:\abc.exe abc cde efg”,相当于给程序abc.exe三个参数(所有参数都是字符串类型),系统会默认多给一个参数“d:\abc.exe”,所以此时argc=4,argv就是一个指针数组,里面存储了4个指针,argv[0]最开始指向的是“d:\abc.exe”里的字符“d”,++argv[0]后就指向“d:\abc.exe”里的第二个字符“:”,因此,用代码“for(;*(argv[0]);++argv[0])printf("%c",*argv[0]);”可以显示完整第一个字符串,下述代码可以比较好理解main函数里参数的用途:
程序代码:
#include <stdio.h>
#include <stdlib.h>
int main (int argc, char *argv[])
{
int i;
printf("argc=%d\n",argc);
for(i=0;i<argc;i++)printf("%s\n",argv[i]);
for(;*(argv[0]);++argv[0])printf("%c",*argv[0]);
system("pause");
}
在cmd窗口执行“d:\abc.exe abc cde efg”命令后运行结果如下:
程序代码:
argc=4
d:\abc.exe
abc
cde
efg
d:\abc.exe请按任意键继续...