c语言中一维数组和二维数组传递的差异
001、一维数组的传递
[root@PC1 test]# ls test.c [root@PC1 test]# cat test.c ## 测试c程序 #include <stdio.h> void print_array(int a[], int b); // 函数原型声明, 末尾需要冒号 int main(void) { int a[5] = {3,8,9}; print_array(a, 5); //一维数组的调用,只需要给数组名称即可 return 0; } void print_array(int a[], int b) // 意味数组的声明,数据类型 + 数组名 + 下标运算符 { int i; for(i = 0; i < b; i++) { printf("a[%d] = %d\n", i, a[i]); } } [root@PC1 test]# gcc test.c -o kkk ## 编译 [root@PC1 test]# ls kkk test.c [root@PC1 test]# ./kkk ## 测试 a[0] = 3 a[1] = 8 a[2] = 9 a[3] = 0 a[4] = 0
002、二维数组的传递
[root@PC1 test]# ls test.c [root@PC1 test]# cat test.c ## 测试程序 #include <stdio.h> void print_array(const int [4][3]); // 函数原型声明 int main(void) { int a[4][3] = {{2,3,4},{2,2,4},{7,8,9},{7,8,6}}; print_array(a); //二维数组的调用,只需要给数组名即可 return 0; } void print_array(const int a[4][3]) //二维数组的声明,数据类型,数组名,每一维的个数(这个是否可以省略??;一维数组中是可以省略掉的) { int i,j; for(i = 0; i < 4; i++) { for(j = 0; j < 3; j++) { printf("a[%d][%d] = %d ", i, j, a[i][j]); } putchar('\n'); } } [root@PC1 test]# gcc test.c -o kkk ## 编译 [root@PC1 test]# ls kkk test.c [root@PC1 test]# ./kkk ## 运算测试 a[0][0] = 2 a[0][1] = 3 a[0][2] = 4 a[1][0] = 2 a[1][1] = 2 a[1][2] = 4 a[2][0] = 7 a[2][1] = 8 a[2][2] = 9 a[3][0] = 7 a[3][1] = 8 a[3][2] = 6
。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2023-11-18 查看perl中 使用 cpan -i module安装过的模块
2023-11-18 /usr/bin/perl: symbol lookup error: Devel/Size/Size.so: undefined symbol: Perl_xs_apiversion_bootcheck
2023-11-18 Can't locate Devel/Size.pm in @INC (you may need to install the Devel::Size module)