c语言中数组和指针的问题(二维指针和二位)

二级指针和二维数组两者差别很大,不可以直接用二级指针传递二维数组

c语言中数组和指针的问题(二维指针和二位)

/* 数组和指针参数是如何被编译器修改的?

  “数组名被改写成一个指针参数”规则并不是递归定义的。数组的数组会被改写成“数组的指针”,而不是“指针的指针”:
  
  实参                                                所匹配的形参
 
数组的数组            char c[8][10];                char (*c)[10];        数组指针
  
指针数组              char *c[10];                  char **c;              指针的指针
  
数组指针(行指针)      char (*c)[10];                char (*c)[10];        不改变
    
指针的指针            char **c;                      char **c;              不改变 


如何给字符指针数组赋值?

eg:char *a[2]={"abc","bcd"};

以此博客记录

参考自:https://www.linuxidc.com/Linux/2015-03/115055.htm