C/C++ 静态二维数组的初始化及行访问和列访问

静态的二维数组,在创建的时候,就可以初始化其所有的元素,初始化是由逗号分隔的一维数组的初始化组成。

如下我们初始化一个4行5列的数组,每行有5个数据,那么在初始化数组的时候,给每行一个一维数组,初始化4行,就构成了了4行5列的二维数组。

二维数组的访问,我们可以按照行来访问,也可以按照列来访问。这里我们都需要用到嵌套循环。

1. 按照行来访问(一行一行数据的输出):

在嵌套循环中,外层循环在进入执行一次的时候,内层循环要执行完整个循环;

也就是外层循环每执行一次,内层循环就要完整的执行一次。总的执行次数是:外循环次数*内循环次数。

分析代码,我们能看出来,

当执行第1次循环,i为0的时候,j可以取值0,1,2,3,4, 依次读出了data[0][0],data[0][1],data[0][2],data[0][3],data[0][4]五个数,这里读出了第1行的5个数;

当执行第2次循环,i为1的时候,j可以取值为0,1,2,3,4,依次读出了data[1][0],data[1][1],data[1][2],data[1][3],data[1][4]五个数,这里读出了第2行的5个数.......最后实现了按行输出。

2. 按照列来访问(第一次输出每行的第1列;第二此输出每行的第2列...):

按照嵌套循环的先执行外循环再执行内循环原理。这个时候我们就需要将代表行的循环放到外层,代表列的循环放到里层。

分析代码我们能看出:

执行第1个循环,j为0,的时候,i可以取值0,1,2,3,4。这个时候依次读出了data[0][0],data[1][0],data[2][0],data[3][0],data[4][0]。这里读出了每行的第1个元素

执行第2个循环,j为1,的时候,i可以取值0,1,2,3,4。这个时候依次读出了data[0][1],data[1][1],data[2][1],data[3][1],data[0][1]。这里读出了每行的第2个元素,...... 最终实现了按列读出.

源码:

// Len_TwoArray.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"

int _tmain(int argc, _TCHAR* argv[])
{
	int data[4][5] = { { 101, 102, 103, 104, 105 },
								{ 201, 202, 203, 204, 205 },
								{ 301, 302, 303, 304, 305 },
								{ 401, 402, 403, 404, 405 } };

	// 按照每行访问
	printf("\n\t按行读出显示:\n");
	for (int i = 0; i < 4; i++)
	{
		printf("\t");
		for (int j = 0; j < 5; j++)
		{
			printf("%d  ", data[i][j]);
		}
		printf("\n");
	}

	// 按照每列访问
	printf("\n\n\t按列读出显示:\n");
	for (int j = 0; j < 5; j++)
	{
		printf("\t");
		for (int i = 0; i < 4; i++)
		{
			printf("%d  ", data[i][j]);
		}
		printf("\n");
	}
	return 0;
}

执行结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WendyWJGu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值