C语言数组和指针传参

时间:2023-01-22 19:55:45

一、数组传参

1.一维数组传参

一维数组传参时,形参有两种表示方法,

1.1.一维数组

来接收实参的一维数组首地址(形参的数组在编译器眼里就是一个指针,[]里的数字可写可不写),

1.2.一级指针

用指针变量接收实参的一维数组首地址

void test1(int arr[])

{


}

void test2(int arr[5])

{


}

void test3(int *p)

{


}


int main()

{

int arr[5] = { 1,2,3,4,5 };

test1(arr);

test2(arr);

test3(arr);


}

2.二维数组传参

二维数组传参时,形参可以是一个

2.1.二维数组

(行标可省略,列标不可省略),

2.2.指针数组,

来接收二维数组首地址(一维数组)

void test1(int arr[][3])

{


}

void test2(int arr[2][3])

{


}

void test3(int(*arr)[3])

{


}

int main()

{

int arr[2][3] = { {1,2,3},{4,5,6} };

test1(arr);

test2(arr);

test3(arr);


}


二、指针传参

1.一级指针传参

用一级指针来当形参

2.二级指针传参

用二级指针来当形参