C语言函数传参-数组形参和指针形参

一维数组传参

void test1(int arr[5]) {}

void test1(int arr[]) {}

void test1(int * arr) {}

void test2(int* arr[5]) {}

void test2(int* arr[]) {}

void test2(int** arr) {}

int main() {

    int arr1[5] = { 0 };
    int* arr2[5] = { 0 };
    test1(arr1);
    test2(arr2);

    return 0;
}

二维数组传参

void test(int arr[3][5]) {}

void test(int arr[][5]) {}

void test(int(*arr)[5]) {}

int main() {

    int arr[3][5] = { 0 };
    test(arr);

    return 0;
}

一级指针传参

void test (int * p) {}

int main () {
	int num = 10;
	int * p = #
	int arr[10] = {0};
	test(&num);
	test(p);
	test(arr);
}

二级指针传参

void test (int ** p) {}

int main () {
	int num = 10;
	int * p = #
	int** pp = &p;
	int* arr[10] = {0};
	test(&p);
	test(pp);
	test(arr);
}

你可能感兴趣的:(c语言,学习,开发语言,指针进阶)