首页 > 代码库 > 变长数组与函数参数

变长数组与函数参数

代码:

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

void setval(const size_t, const size_t, int arr[*][*]);
void display(const size_t, const size_t, int arr[*][*]);

int main(void) {

	const size_t ROWS = 5;
	const size_t COLS = 3;

	int arr[ROWS][COLS];

	setval(ROWS, COLS, arr);

	display(ROWS, COLS, arr);

	return EXIT_SUCCESS;
}

void setval(const size_t ROWS, const size_t COLS, int arr[ROWS][COLS]) {

	// 变长数组名实际上是指针
	// 具有变长数组参量的函数实际上直接使用原数组,有能力修改作为参数传递进来的数组
	for (size_t i = 0; i < ROWS; ++i) {
		for (size_t j = 0; j < COLS; ++j) {
			arr[i][j] = i + j;
		}
	}

}

void display(const size_t ROWS, const size_t COLS, int arr[][COLS]) {

	for (size_t i = 0; i < ROWS; ++i) {
		for (size_t j = 0; j < COLS; ++j) {
			printf("%2d", arr[i][j]);
		}
		printf("\n");
	}

}

输出:

 0 1 2
 1 2 3
 2 3 4
 3 4 5
 4 5 6


变长数组与函数参数