1.关于argc和argv的理解
带形参的main函数,如标题所示,是UNIX、Linux以及Mac OS操作系统中C/C++的main函数标准写法。
argc就是传递给该程序的数目,而char** argv是一个指向char类型指针的指针,即argv是一个指针,其指向了(* argv) , (* argv)也是一个指针,其指向了char类型的数据。
2.char *argv[]
和char ** argv
是否等价
实际上char *argv[]
和char ** argv
并不等价:
因为char *argv[]
指针数组,指针数组即为数组中的每个元素都是指针变量,其语法形式为:
1 数据类型 * 数组名 [下标表达式] ;
在c++中,传递数组的时候只需要首地址(即指针)即可,故而char *argv[]
就把argv[]
解释成了*argv
,结果整体就变成了char **argv
了。