<s>求助，关于C语言字符串数组函数问题</s>
<s>楼主，可以查查“二维数组传参”相关字眼，有相应的文章说明二维数组传参的方法。</s><s>下面是其中一种方法： #include <stdio.h> #include <string.h> #define SIZE 256 #define LIM 2 void print_string(char st[][SIZE], int lim); int main(void) { char input[LIM][SIZE] = { "my", "be" }; print_string(input, LIM); return 0; } void print_string(char st[][SIZE], int lim) { int i; for (i = 0; i < lim; i++) puts(st[i]); } 而至于你上面说的为什么不能用char**str作为参数，因为当把这种二维数组的指针直接作为参数传递时，数组名退化为指针，函数并不知道数组的列数，SIZE对它来说是不可见的，所以第一层解引用会失败。</s><s>这时，编译器可能会报warning，或者运行生成的文件会发生segment fault。</s><s>引用网友在文章的图说明：(链接:http://www.cnblogs.com/wuyuegb2312/archive/2013/06/14/3135277.html) 栈上分配的二维数组数组名int array[3][3]的真实类型是int [ ][ ]，在作为右值时才被转化为(int *array)[N]，和int **是不同的。</s><s>把前者进行强制转换为后者，在函数中对元素操作也会导致段错误，上图面用图来说明二者区别。</s>
