#include <stdio.h>
// 定义函数,对传入的数组元素进行加倍操作
void func(int *param) {
// 由于param是指向数组首元素的指针,通过循环遍历数组所有元素并加倍
for (int i = 0; i < 3 * 4; i++) {
param[i] *= 2;
}
}
int main() {
int arr[3][4] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};
// 数组名arr在传递给函数时,会退化为指向首元素的指针,这里传递arr[0]即指向第一行首元素的指针
func(arr[0]);
// 输出加倍后的数组
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
return 0;
}
func
函数接受一个 int
类型的指针 param
,这个指针指向要操作数组的首元素。
- 在
func
函数中,通过循环遍历整个二维数组(将二维数组视为一维数组,总元素个数为 3 * 4
),对每个元素进行加倍操作。
- 在
main
函数中,定义二维数组 arr
,并将 arr[0]
(即指向第一行首元素的指针)传递给 func
函数。这体现了C语言中数组名在传递给函数时会退化为指针的特性。
- 最后,在
main
函数中输出加倍后的数组元素。