什么是二维数组以及二维数组传参

什么是二维数组

当刚看见二维数组时肯定会对二维数组有一些疑惑二维数组是什么?

 

	int arr[4] = { 1,2,3,4 };//这个便是一维数组

以 int 类型为例子当 int 类型的元素集合在一起便形成了一维数组(如图示)。

二维数组是 一维数组 集合在一起形成二维数组 

 

	int arr[4][4] = { {1,2,3,4},{2,3,4,5},{3,4,5,6},{4,5,6,7} };
    //这个是二维数组

二维数组类似于表格的样子如上图,其中各个元素按照表格排列

二维数组的元素个数可以想象为n行n列,以上面arr[4][4]为例元素个数为4*4为16个。

二维数组的下标如同一维数组一样都是0开始的,构成数组arr的元素有

    arr[0][0], arr[0][1], arr[0][2], arr[0][3]
    arr[1][0], arr[1][1], arr[1][2], arr[1][3]
    ......
    arr[3][0], arr[3][1],...............arr[3][3]

以上为介绍什么是二维数组。

二维数组的使用

输入三个同学的三次成绩分别计算出他们各自的总成绩

arr[0][j]是储存第一个同学的成绩

count[]是储存每个同学的总成绩

#include <stdio.h>
int main()
{
	int arr[3][3] = { 0 };
	int count[3] = {0};
	puts("输入三个同学,三门考试的考试成绩\n");
	for (int i = 0; i < 3; i++)
	{
		for (int j = 0; j < 3; j++)
		{
			printf("%d位同学的第%d个成绩\n", i + 1, j + 1);
			scanf("%d", &arr[i][j]);
		}
		puts("\n");
	}
	for (int i = 0; i < 3; i++)
	{
		for (int j = 0; j < 3; j++)
		{
			count[i] += arr[i][j];
		}
	}
	for (int i = 0; i < 3; i++)
	{
		printf("%d位同学总成绩是%d\n", i + 1,count[i]);
		puts("\n");
	}
}

 二维数组传参

二维数组传参首先要注意的是传参不能取数组名的地址

//以arr[3][3]为例

//二维数组传参因为数组名即为数组首元素地址所以可以直接使用数组名,其次要注意因为

//是二维数组所以需要传有几个元素为了说明到底有多少行和列

//主函数部分传参

function(arr,3,3);

//函数部分接收二维数组如果不需要返回值则

void function(int arr[3][3],int x,int y)

//记得一定要创建arr[ ][3]这样是为了说明这个数组是一个二维数组同时也不会引起报错

//函数声明时要注意arr[3][3]可以写为arr[ ][3]但是不可以写成arr[ ][ ]

//注意!!!

//二维数组传参给函数在函数内执行的过程中可能对数组内容进行修改

//如果不想修改函数内的内容

//二维数组传参使用过程中如果不想对数组内容进行修改可以加const

//

举个栗子

 

#include <stdio.h>
void add(int arr[4][4], int a, int b)
{
    //自增过程
	for (int i = 0; i < 4; i++)
	{
		for (int j = 0; j < 4; j++)
		{
			arr[i][j] += 1;
            //也可以
            //*(arr[i]+j)+=1;
		}
	}
}
int main()
{
	int arr[][4] = { {1,2,3,4},{2,3,4,5},{3,4,5,6},{4,5,6,7} };
    //add函数的作用为将arr这个二维数组里面的所有元素都自增 1
	add(arr,4,4);
    //打印
	for (int i = 0; i < 4; i++)
	{
		for (int j = 0; j < 4; j++)
		{
			printf("%d	", arr[i][j]);
		}
		puts("\n");
	}
	return 0;
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值