是你调用的参数列表。
当你使用命令行调用你写的exe程序的时候,会传入参数,一般参数都会当做字符串处理,因为你的argv是字符类型的数组,一个字符串是一个一维字符数组,那么多个参数就可以看做一个字符串数组,也就是字符的二维数组了。
你的argv[2][0]其实指的是传入的第2个参数的第1个字符。
继续详细说明一下
argv[0] 指向程序运行的全路径名,也就是你编译出来的exe的程序全路径名
argv[1] 指向在DOS命令行中执行程序名后的第一个字符串
argv[2] 指向执行程序名后的第二个字符串
举个例子,你写了一个helloworld程序
#include
int main(int argc, char *argv[])
{
printf("%s,hello!\n",argv[1]);
return 0;
}
这个例子不严谨哈!如果你直接调试,没有传入参数会直接报错的。
首先你编译一下,生成helloworld.exe。然后我用直观的方法跟你说吧,你运行cmd,比如你这个helloworld.exe放在D盘根目录了,我想调用它,在cdm中敲入
d:/helloworld.exe xiaoming
这样,运行出来的结果就是
xiaoming,hello!
argv就是你传进来的参数列表,明白了吗?
这是一个二维数组啊!!你联想一下,一个方阵是不是分为横排和纵列呢?假如从0开始计数,这个就好比是第2排第0个,是不是就是二维的了!
这应该是指向二维数组argv第三行第一列元素的指针
argv这个数组的第三个元素中的第一个元素
argv[x][y]
可以参照xy象限理解