二維數組的傳參
二級數組傳遞參數時,不能以一個二級指針的方式,以二級指針的方式只傳遞了這個二級數組的首地址,但沒有帶出這個二維數組各元素的地址,編譯器不能通過二級指針的移動尋找其元素。對于二級數組要用數組指針的形式傳參
#include <stdio.h>
void print_arr (char (*a)[4])
{
??? int i;
??? for(i = 0; i < 3; i++)
??? printf("%s\n", a[i]);
}
int main()
{
??? char *str_arr[3][4] = {"yes", "no", "uncertain"};
??? print_arr (str_arr);
??? return 0;
}
如果要以二級指針的形式傳參,可以在定義為字符串指針數組的形式
char *str_arr[] = {"yes", "no", "uncertain"};
void print_arr (char **a)
{
??? int i;
??? for (i=0; i<3;i++)
??? printf("%s\n", *(a+1));
}