二维数组的函数参数传递的问题,以前解决过好几次,总还是忘记,这回总结出来写在这里。
#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语言写的输入一个二维数组,找其中的鞍点
有下面这样的一个二维表,请将其使用二维数组输出 姓名 语文 数学 英语 张三 80 70 90 李四 40 50 90 王五 90 98 100 题解 与几位童鞋交流了一下发现他们都把汉字单独拿出来了,只用数组存储的成绩,...
很好很实用的C语言课件,我们老师做的,很不错。二维数组的哈。
C语言的二维数组课件,对初学者是不错的选择
c++ c语言编写 二维数组的 冒泡排序 范例
C语言动态分配二维数组,对数组动态分配进行详细描述
c语言 二维数组 源码
6.1 C语言数组的概念 6.2 C语言二维数组 6.3 C语言数组元素的查询 6.4 C语言字符数组和字符串 6.5 C语言字符串处理函数 6.6 C语言字符
主要介绍二维数组指针的一些相关例题和二维数组指针的用法!
C语言程序设计-求出二维数组周边元素之和,作为函数值返回;二维数组的值在主函数中赋予;
c语言求二维数组鞍点 在上面的代码中,我们定义了一个3×3的二维数组matrix,并在main()函数中调用findSaddlePoint()函数来找到鞍点。findSaddlePoint()函数使用两个嵌套的循环来遍历数组,首先在每一行找到最小值...
C语言 实在 矩阵的乘法 加法 转置 各个子涵数都有通用性,内存的分配是使用二维数组动态 malloc 分配
主要介绍了C语言中数组作为函数的参数以及返回值的使用简单入门,这里以一维数组作为基本条件进行例子讲解,需要的朋友可以参考下
C语言二维数组学习教案.pptx