13.5.【C语言】二维数组

接第13篇(http://t.csdnimg.cn/TioJH)

把一维数组做为数组的元素,这时候就是二维数组,二维数组作为数组元素的数组被称为三维数组,二维数组以上的数组统称为多维数组。

01.创建

格式:

数据类型 数组名[常量值1][常量值2]
//常量值1代表行,常量值2代表每行的元素个数

数组名[][]

如 int arr[3][5]

02.初始化

*不初始化 int arr[3][5]={0};

*不完全初始化

int arr[3][5] = {1,2,3};

未初始化的默认为0

类比二维坐标(行和列从0开始

默认情况数据存储的顺序:(0,0),(1,0),(2,0) ……

*按行初始化

由于一行是一个一维数组

int arr[3][5] = {{1,2},{3,4,5,6},{7,8}};

*初始化时可以省略行,但是不能省略列

*省略后必须给出初始化表达式,编译器从初始化结果中推断数组有多少行

int arr[][5] = {{1,2},{3,4,5,6},{7,8}};

由{{1,2},{3,4,5,6},{7,8}}可知是三行 

像下面的代码是错误的初始化

int a[][3]={{0,,2},{},{3,4,5}};

0和2之间有两个逗号

03.使用

*访问:arr[i][j],指定i和j后可以访问(即下标访问)

*打印:嵌套循环

#define  _CRT_SECURE_NO_WARNINGS 1 
#include <stdio.h>
int main()
{
	int arr[3][5] = {1,2,32,5,3,7,8,5,13,6,8,42,5,73,45};
	for (int i = 0; i <= 2; i++)//i是行
	{
		for (int j = 0; j <= 4; j++)//j是列
		{
			printf("%d ", arr[i][j]);
		}
		printf("\n");
	}
	return 0;
}

*存储

#define  _CRT_SECURE_NO_WARNINGS 1 
#include <stdio.h>
int main()
{
	int arr[3][5] = {1,2,32,5,3,7,8,5,13,6,8,42,5,73,45};
	for (int i = 0; i <= 2; i++)//i是行
	{
		for (int j = 0; j <= 4; j++)//j是列
		{
			printf("%p ", &arr[i][j]);
		}
		printf("\n");
	}
	return 0;
}

 

相邻地址间差四(整型4字节)

二维数组中的每个元素都是按行连续存放的

04.本质理解

把一维数组做为数组的元素,这时候就是二维数组

对比arr[i]和arr[i][j]

二维数组的一行就是一维数组.显然arr[i]等同于arr[1][i]

因此对于arr[i][j]数组元素,该行的数组名是arr[i]

  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值