c语言中,多维数组做函数参数退化的问题
程序员文章站
2023-12-31 14:48:28
...
在c语言中,多维数组做函数参数,会退化为指针。具体看如下代码
#include<stdio.h>
void call(char* array[])
{
int num = sizeof(array) / sizeof(*array); //二级指针array和一级指针*array是一样大小的,所以是1
printf("%d \n", num); //这里输出1,表明多维数组做函数参数,会退化为多维指针
printf("%s\n", array[0]);
}
int main()
{
//定义数组指针的第一种类型
char* array[] = { "aa","bb","cc","dd" };
int num = sizeof(array) / sizeof(*array); //输出4,代表这个数组有4个元素
call(array);
printf("%d \n", num);
}