数组作为函数参数

一维数据做函数参数:

1.数组作为参数传给函数时,数组可以转换成一个指针,传入数组名相当于传入数组首个元素的地址,不是传整个的数组空间

2.数组可以当做指针用,指针也可以当做数组用的例子

void main(int argc, char *argv[])
{
    char str[20] = "12345";
    char *p = "1234";


    printf("%c %c\n", *str, *(str+1));
    printf("%c %c\n", p[0], p[2]);
}

输出:
1 2
1 3

 二维数组作为函数实参:

错误认识:既然一维数组作为参数相当与一个指针,那二维数组作为参数就相当于一个二级指针(不要把 a[][] 写成 **a 传入函数)

正确认识:二维数组名作为参数时相当于一个数组指针(指向一维数组的指针)

// 方式1
void fun(int a[4][3])

// 方式2
void fun(int (*p)[3])

// 方式3
void fun(int a[][3])

 

 
posted @ 2023-04-06 20:43  jason8826  阅读(44)  评论(0编辑  收藏  举报