int main(int argc, char* argv[]) vs运行带参数程序,指针数组

我们大多数看到的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”

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章