C语言基础-07 二维数组

这篇博客详细介绍了C语言中的二维数组,包括定义、存储方式、元素引用及初始化方法。并给出了一个二维数组元素行列互换的程序示例,通过交换原数组的行和列将元素存入新数组中。此外,还提及了多维数组的定义和内存排列顺序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、二维数组

1.定义二维数组

2.二维数组的存储

3.引用二维数组元素

4.二维数组的初始化

二、二维数组程序举例

三、多维数组


一、二维数组

1.定义二维数组

表示方法:

类型说明符 数组名[常量表达式][常量表达式]

  •  ​float a[3][4];   //定义a为3x4(3行4列)的数组,数组第一维有3个元素,第二维有4个元素
  •  float a[3,4];   //在一对方括号内不能写两个下标
  • 二维数组可被看作一种特殊的一维数组:它的元素又是一个一维数组 

2.二维数组的存储

C语言中,二维数组中元素排列的顺序是按行存放的。

float a[3][4]; //float占4个字节

3.引用二维数组元素

数组名[下标][下标]

  • “下标”可以是整型常量或整型表达式
  • 数组元素可以出现在表达式中,也可以被赋值,如:b[1][2]=a[2][3]/2;
  • 在引用数组元素时,下标值应在已定义的数组大小的范围内

4.二维数组的初始化

可以用“初始化列表”对二维数组初始化

(1)分行给二维数组赋初值。(最清楚直观)

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

(2)可以将所有数据写在一个花括号内,按数组元素在内存中的排列顺序对各元素赋初值

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

(3)可以对部分元素赋初值

int a[3][4]={{1},{},{9}};

 注:没有赋值的数组元素,系统自动填补:数组类型为int,数组元素为0;数组类型为float,数组元素为0.0;数组类型为char,数组元素为"\0"

(4)如果对全部元素都赋初值(即提供全部初始数据),则定义数组时对第1维的长度可以不指定,但第2维的长度不能省略;

 在定义时也可以只对部分元素赋初值而省略第1维的长度,但应分行赋初值

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

二、二维数组程序举例

【例1】:讲义二维数组行和列的元素互换,存到另一个二维数组中

代码示例(如下):

#include<stdio.h>
int main(){
	int a[2][3]={{1,2,3},{4,5,6}},b[3][2],i,j;
    //输出a数组
	printf("数组a为:\n");
	for(i=0;i<2;i++){
		for(j=0;j<3;j++){
			printf("%d  ",a[i][j]);
		}
		printf("\n");
	}
	//行和列的元素互换 
	for(i=0;i<2;i++){
		for(j=0;j<3;j++){
			b[j][i]=a[i][j];
		}
	}
	//输出b数组
	printf("数组b为:\n");
	for(i=0;i<3;i++){
		for(j=0;j<2;j++){
			printf("%d  ",b[i][j]);	
		}
		printf("\n");
	}
} 

三、多维数组

1.定义多维数组

  • float a[2][3][4]; //定义三维数组a,它有2页,3行,4列

2.排列顺序

  • float a[2][3][4];在内存中的排列顺序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值