二维数组的函数参数传递的问题,以前解决过好几次,总还是忘记,这回总结出来写在这里。
#include <stdio.h>
/*********************************
* 方法1: 第一维的长度可以不指定 *
* 但必须指定第二维的长度 *
*********************************/
void print_a(int a[][5], int n, int m)
{
int i, j;
for(i = 0; i < n; i++)
{
for(j = 0; j < m; j++)
printf("%d ", a[i][j]);
printf("\n");
}
}
/*****************************************
*方法2: 指向一个有5个元素一维数组的指针 *
*****************************************/
void print_b(int (*a)[5], int n, int m)
{
int i, j;
for(i = 0; i < n; i++)
{
for(j = 0; j < m; j++)
printf("%d ", a[i][j]);
printf("\n");
}
}
/***********************************
*方法3: 利用数组是顺序存储的特性, *
* 通过降维来访问原数组! *
***********************************/
void print_c(int *a, int n, int m)
{
int i, j;
for(i = 0; i < n; i++)
{
for(j = 0; j < m; j++)
printf("%d ", *(a + i*m + j));
printf("\n");
}
}
int main(void)
{
int a[5][5] = {{1, 2}, {3, 4, 5}, {6}, {7}, {0, 8}};
printf("\n方法1:\n");
print_a(a, 5, 5);
printf("\n方法2:\n");
print_b(a, 5, 5);
printf("\n方法3:\n");
print_c(&a[0][0], 5, 5);
getch();
return 0;
}
分享到:
相关推荐
主要给大家介绍了关于C语言中二维数组作为函数参数来传递的三种方法,文中通过示例代码介绍的非常详细,对大家学习或者使用C语言有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
用二C语言求二维数组鞍点,有文档和程序。。
最简单的二维数组求和程序,用函数来实现,代码简单易懂,希望对您有帮助
用二C语言求二维数组鞍点 有程序和文档。
有学习C语言的同学可以试试做这个题目,涉及到指针,函数,二维数组的相关知识,里面附带本人自己写的代码(vs2008环境),不足的地方望多提意见。
c语言二维数组的传递,很适合初学者以及对指针有所迷惑的同学。 本程序已经在VC++6.0里面编译通过
用c语言写的输入一个二维数组,找其中的鞍点
很好很实用的C语言课件,我们老师做的,很不错。二维数组的哈。
C语言的二维数组课件,对初学者是不错的选择
c++ c语言编写 二维数组的 冒泡排序 范例
C语言动态分配二维数组,对数组动态分配进行详细描述
c语言 二维数组 源码
6.1 C语言数组的概念 6.2 C语言二维数组 6.3 C语言数组元素的查询 6.4 C语言字符数组和字符串 6.5 C语言字符串处理函数 6.6 C语言字符
有下面这样的一个二维表,请将其使用二维数组输出 姓名 语文 数学 英语 张三 80 70 90 李四 40 50 90 王五 90 98 100 题解 与几位童鞋交流了一下发现他们都把汉字单独拿出来了,只用数组存储的成绩,...
主要介绍二维数组指针的一些相关例题和二维数组指针的用法!
C语言程序设计-求出二维数组周边元素之和,作为函数值返回;二维数组的值在主函数中赋予;
主要介绍了C语言中数组作为函数的参数以及返回值的使用简单入门,这里以一维数组作为基本条件进行例子讲解,需要的朋友可以参考下
c语言求二维数组鞍点 在上面的代码中,我们定义了一个3×3的二维数组matrix,并在main()函数中调用findSaddlePoint()函数来找到鞍点。findSaddlePoint()函数使用两个嵌套的循环来遍历数组,首先在每一行找到最小值...
C语言 实在 矩阵的乘法 加法 转置 各个子涵数都有通用性,内存的分配是使用二维数组动态 malloc 分配
C语言二维数组学习教案.pptx