数组的数组会被修改成为“数组的指针”,而不是“指针的指针”
实参 所匹配的形式参数
数组的数组 char c[8][10]
<—> char (*)[10]
数组指针
指针数组 char *c[15]
<—> char **c
指针的指针
数组指针 char (*c)[64]
<—> char (*c)[64]
不改变
指针的指针 char **c
<—> char **c
不改变
二维数组被改写为 指向数组第一行的指针
对多维数组作为参数传递的支持缺乏是C语言存在的一个内在限制,这使得使用C语言编写某些特定类型的程序非常困难(例如,数值分析算法)
- C语言几点值得思考的问题:
如何使用指针向函数传递一个多维数组?
如何使用指针从函数返回一个数组?
如何使用指针创建和使用动态数组?