首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

为何fun(char a[][])不行

2012-08-10 
为什么fun(char a[][])不行fun(char a[][])fun(char *a[])fun(char **a)为什么第一个的写法却是错误的?

为什么fun(char a[][])不行
fun(char a[][]);
fun(char *a[]);
fun(char **a);

为什么第一个的写法却是错误的?

---------------------


[解决办法]
对于一维数组而言,作为实参的话,会转换成指向数组第一个元素的指针,会忽略了数组的长度
那么对于二维数组而言,作为实参的话,会转换成指向第一维第一个元素的指针(第一个元素其实是指向数组的指针),即转换成指向指针的指针,同样会忽略第一维的长度。


我依稀记得 得这么写,fun(char a[][10]),(刚测试了一下,编译通过了)即指定第二维的长度,具体为什么我忘记了,可以去看c++primer,里面有说

热点排行