回复 8楼 aneeg
void str(char *strings[]) --------
等价于 void str(char **strings)
就算你写成void str(char * strings[1000000000])
-------- 编译器方式给你变成 void str(char ** strings);这是对于函数来说,原因正如zklhp大大说的那样。
-------------------------------------------------------------------------华丽的装逼分界线----------------------------------------------------------------------------------------------
但是如果你在函数中声明char* strings[],必须告诉编译器你要的大小,不然编译器不知道你要的是多大,如果你写成char * strings[] = {"a", "b"};编译器会给你自动计算这个数组的大小。
数组和指针是可以混用,但是是有本质区别的,在函数里声明的本质就是指针,那样写只是为了好理解,C的语法糖。