C语言二维数组

一.二维数组的创建和初始化

1.二维数组的创建:

基本语法:type  arr_name[常量值][常量值]  如下:

float math[3][5];

  1.  3表示数组有3行 
  2.  5表示每一行有5个元素(可叫为5列)  
  3.  float表示数组的每个元素是单精度浮点类型 
  4.  math是数组名,可自定义

2.二维数组的初始化:

1.不完全初始化:

int data1[3][4] = { 1,2,3 };  ——> 只初始化了三个元素,剩下的都为0
int data2[3][4] = { 0 };  ——> 都为0的不完全初始化

2.完全初始化:

int data[2][4] = { 1,2,3,4,2,3,4,5 };  ——> 每个元素都被初始化了

3.按照行初始化:

int data[2][4] = { {2,4},{3,5} };  ——> 每行的前两个元素被初始化

注:初始化时,可以省略行,但不能省略列!如下:

int data[][4] = { 2,4,3,5,3 };  ——>有两行

三.二维数组的使用

1.二维数组的下标:

C语⾔规定,⼆维数组的⾏和列都是从0开始的

可见上述坐标(1,3)打印对应的元素是5,因为下标是从0开始的

2.二维数组如何输入并打印所有元素?如下:

上述代码运用for的嵌套循环来实现数组所有元素的输入和输出

四.二维数组在内存中的存储

和一维数组一样。 把二维数组每个元素的地址打印出来 如下:

上述打印结果可看出:和一维数组一样

  1. 数组随着下标的增长,地址是由小到大变化的
  2. 数组在内存中也是连续存放的,并且每两个相邻的元素之间也是相差4(因为⼀个整型是4个字节)

五.C99中的变长数组

以史为鉴:C99之前数组的大小只能使用常量或者常量表达式指定,或者初始化数据以省略数组大小。 如下:

int arr1[5];//对                              
int arr2[3 + 5];//对
int arr3[8];//对

int n = 10;
int arr4[n];//错误,不能使用变量

但是在C99中引入了变长数组的概念,这时创建数组的时候可以使用变量来指定大小

则:      int n = 10;
             int arr4[n];//正确,能使用变量

遗憾的是VS(Vision Studio集成开发环境)中不支持变长数组,需安装小熊猫C++ 其使用了gcc这个编译器(gcc 是支持变长数组的)

以下是小熊猫C++使用变长数组

以下是VS使用变长数组,可看出报错了

注:变长数组的意思是数组的大小可以使用变量指定。但数组一旦创建后,大小就无法改变了
变长数组不能初始化!!!

数组练习:多个字符从两端移动,向中间汇聚

由于个人水平有限,如有不足之处,恳请各位老师指出。谢谢!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Phospherus.

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

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

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

打赏作者

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

抵扣说明:

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

余额充值