我们大多数看到的c++程序的main是这样的
void main()
{
……
}
这样的函数方便在vs里面调试,但是有时需要直接进行外部输入
我们看到的main函数是这样的
int main(int argc, char* argv[])
{
……
}
argc为统计argv数组中元素个数的变量,不需要我们输入
我们输入时只需要输入参数给指针数组argv即可(指针数组char* agrv[]知识在最后有所补充)
现在我们需要解决的问题是,在我们运行程序时,如何输入参数给argv[]呢?
程序中,读取argv[]的地方改成我们需要的参数——可以这么做,当然这么做的弊端也是挺大的,你需要去每个位置修改。
或者是在程序开始直接定义agrv()
不过,我们可以通过正规的操作处理这个程序
我们在程序调试的生成中,已经生成了exe文件,我们可以在windows情况下使用cmd运行exe程序。(命令行最大的优点时,可以同时提供exe运行所需的输入)
首先用进入cmd界面
然后用cd进入exe所在盘
然后进入exe所在的文件夹
输入程序名,并在后面加空格后输入需要输入的参数,这里的参数是一张在exe文件所在文件夹的图片。
然后就可以顺利运行了。
指针数组
指针构成的数组
和普通数组的区别在于,普通数组每个元素对应一个字符
而
指针数组,每个元素对应一个地址,这个地址就可以装多个字符了。
关于指针的理解,可以看二郎之前的博客,有详细讲解,易懂。
指针和我们普通变量最大的差别在运算和表达上,用指针就在指针系统下思考,用普通变量就在普通变量系统下思考。
char a[3][5]={"aaa","bbb","ccc"};
char *n[3]={"aaa","bbb","ccc"};
上面写的是一维指针数组,二维指针数组在引用时,需要指定具体位置
因此用到了**
char *ptr_array[3][3]={{"xxx","yyy","zzz"},{"x","y","z"},{"xx","yy","zz"}};
*(*(ptr_array+2))=“xx”
*(*(ptr_array+2)+2)=“zz”