1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 【C 语言】数组 ( 多维数组做函数形参退化为指针过程 | int array[2][3] ->

【C 语言】数组 ( 多维数组做函数形参退化为指针过程 | int array[2][3] ->

时间:2021-11-30 07:24:26

相关推荐

【C 语言】数组 ( 多维数组做函数形参退化为指针过程 | int array[2][3] ->

文章目录

一、多维数组做函数形参退化为指针过程1、使用 int array[2][3] 作函数参数2、使用 int array[][3] 作函数参数3、使用 int (*array)[3] 作函数参数

一、多维数组做函数形参退化为指针过程

一维数组 作为 函数参数时 , 会退化为指针 ; 解决方案是 传入 数组首地址 和 数组元素个数 ;

如果 多维数组 作为 函数参数时 , 也存在退化问题 ;

1、使用 int array[2][3] 作函数参数

使用int array[2][3]作为函数参数 , 可以完整打印出二维数组中的值 ;

#include <stdio.h>#include <stdlib.h>#include <string.h>void print_array(int array[2][3]){// 循环控制变量int i = 0, j = 0;// 打印 二维数组 值for(i = 0; i < 2; i ++){for(j = 0; j < 3; j++){printf("array[%d][%d] = %d\n", i, j, array[i][j]);}}}/*** @brief main* @return*/int main(){// 声明一个 二维数组int array[2][3];// 循环控制变量int i = 0, j = 0;// 赋值时使用的索引值int index = 0;// 为 二维数组 赋值for(i = 0; i < 2; i ++){for(j = 0; j < 3; j++){array[i][j] = index++;}}// 打印二维数组值print_array(array);// 命令行不要退出system("pause");return 0;}

执行结果 :

2、使用 int array[][3] 作函数参数

使用int array[][3]作为函数参数 , 可以完整打印出二维数组中的值 ;

#include <stdio.h>#include <stdlib.h>#include <string.h>void print_array(int array[][3]){// 循环控制变量int i = 0, j = 0;// 打印 二维数组 值for(i = 0; i < 2; i ++){for(j = 0; j < 3; j++){printf("array[%d][%d] = %d\n", i, j, array[i][j]);}}}/*** @brief main* @return*/int main(){// 声明一个 二维数组int array[2][3];// 循环控制变量int i = 0, j = 0;// 赋值时使用的索引值int index = 0;// 为 二维数组 赋值for(i = 0; i < 2; i ++){for(j = 0; j < 3; j++){array[i][j] = index++;}}// 打印二维数组值print_array(array);// 命令行不要退出system("pause");return 0;}

执行结果 :

3、使用 int (*array)[3] 作函数参数

使用int (*array)[3]作为函数参数 , 可以完整打印出二维数组中的值 ;

#include <stdio.h>#include <stdlib.h>#include <string.h>void print_array(int (*array)[3]){// 循环控制变量int i = 0, j = 0;// 打印 二维数组 值for(i = 0; i < 2; i ++){for(j = 0; j < 3; j++){printf("array[%d][%d] = %d\n", i, j, array[i][j]);}}}/*** @brief main* @return*/int main(){// 声明一个 二维数组int array[2][3];// 循环控制变量int i = 0, j = 0;// 赋值时使用的索引值int index = 0;// 为 二维数组 赋值for(i = 0; i < 2; i ++){for(j = 0; j < 3; j++){array[i][j] = index++;}}// 打印二维数组值print_array(array);// 命令行不要退出system("pause");return 0;}

执行结果 :

【C 语言】数组 ( 多维数组做函数形参退化为指针过程 | int array[2][3] -> int array[][3] -> int (*array)[3] )

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。