C语言 二维数组做参数的形式

Posted 流楚丶格念

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言 二维数组做参数的形式相关的知识,希望对你有一定的参考价值。

二维数组的3种参数形式

第一种形式:int arr[3][3]

void PrintArray01(int arr[3][3]){
	for (int i = 0; i < 3; i++){
		for (int j = 0; j < 3; j++){
			printf("arr[%d][%d]:%d\\n", i, j, arr[i][j]);
		}
	}
}

第二种形式:int arr[][3]

void PrintArray02(int arr[][3]){
	for (int i = 0; i < 3; i++){
		for (int j = 0; j < 3; j++){
			printf("arr[%d][%d]:%d\\n", i, j, arr[i][j]);
		}
	}
}

第三种形式:int(*arr)[3]

数组指针的形式

void PrintArray03(int(*arr)[3]){
	for (int i = 0; i < 3; i++){
		for (int j = 0; j < 3; j++){
			printf("arr[%d][%d]:%d\\n", i, j, arr[i][j]);
		}
	}
}

案例代码

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

// 形式参数:第一种形式
void PrintArray01(int arr[3][3]) {
	for (int i = 0; i < 3; i++) {
		for (int j = 0; j < 3; j++) {
			printf("arr[%d][%d]:%d\\n", i, j, arr[i][j]);
		}
	}
	arr[0][0] = 1111;
}

// 形式参数:第二种形式
void PrintArray02(int arr[][3]) {
	for (int i = 0; i < 3; i++) {
		for (int j = 0; j < 3; j++) {
			printf("arr[%d][%d]:%d\\n", i, j, arr[i][j]);
		}
	}
	arr[0][0] = 2222;
}

// 形式参数:第三种形式
void PrintArray03(int(*arr)[3]) {
	for (int i = 0; i < 3; i++) {
		for (int j = 0; j < 3; j++) {
			printf("arr[%d][%d]:%d\\n", i, j, arr[i][j]);
		}
	}
	arr[0][0] = 3333;
}

// 实际参数
void PrintArray04(int** arr) {
	for (int i = 0; i < 3; i++) {
		for (int j = 0; j < 3; j++) {
			printf("arr[%d][%d]:%d\\n", i, j, arr[i][j]);
		}
	}
	arr[0][0] = 4444;
}

void test() {

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

	printf("第一种:\\n");
	PrintArray01(arr);
	printf("arr[0][0] = %d\\n", arr[0][0]);
	printf("第二种:\\n");
	PrintArray02(arr);
	printf("arr[0][0] = %d\\n", arr[0][0]);
	printf("第三种:\\n");
	PrintArray03(arr);
	printf("arr[0][0] = %d\\n", arr[0][0]);

}
int main()
{
	test();
	return 0;
}

以上是关于C语言 二维数组做参数的形式的主要内容,如果未能解决你的问题,请参考以下文章

C语言中 指针做函数参数传递二维数组

c语言中怎么用二维数组作为函数参数

C语言函数传递二维数组

java 如何将二维数组的一列作为参数传进去 求代码

c语言中怎么用二维数组作为函数参数

JNI内两种方式从C/C++中传递一维二维三维数组数据至Java层详细梳理