提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
我们在刚接触c语言中对数组肯定有很多不懂的地方,当然我也不像大佬们对数组有自己的理解。
我从个人角度来谈谈自己的理解。我会讲的尽量简单一点。
一、数组是什么
数组是⼀组相同类型元素的集合;从这个概念中我们就可以发现2个有价值的信息:
• 数组中存放的是1个或者多个数据,但是数组元素个数不能为0。
• 数组中存放的多个数据,类型是相同的。 数组分为⼀维数组和多维数组,多维数组⼀般⽐较多⻅的是⼆维数组
二、数组介绍
1.一维数组
首先是对数组的创建和初始化
1. type arr_name[常量值]
在这里存放在数组里的值叫做数组的元素,在创建的时候可以定义数组的类型和大小。
2.这里的 type 是指数组存放的类型可以是char short flaot 等等。
3.arr_name 指的是数组名的名字,看个人需求,有意义就好。
4.[ ]里面常量值规定的是数组的大小根据事实设定
这个就是一个名字为math 大小为20的整形数组
5.一般数组 被创建的时候会进行初始化,初始化也分为完全初始化和不完全初始化
数组也是有类型的,去掉前面的数组名称就行
arr1数组的类型是 int [5]
arr2数组的类型是 int[6]
下面开始数组的使用咯!!(加油!)
下面我们进行数组的使用。就像我们一样我们生活总是有数字对应着(上学时的学号,上班的工号,身份证的排号)
每个数字都是有意义。数组也是这样,只是数组从0开始。这个称为下标,每一个数组的元素都有自己的下标。
1 | 2 | 3 | 4 | 5 | 6 | 7 |
0 | 1 | 2 | 3 | 4 | 5 | 6 |
-
这边我们进行数组的输入
-
#include <stdio.h> int main() { int arr[7]={1,2,3,4,5,6,7}; int i=0; for(int i=0;i<7;i++) { scanf("%d",&arr[i]);//TODO } for(int i=0;i<=7;i++) { printf("%d",&arr[i]);//TODO } return 0; }
这边我们对数组的存储进行一个认识
因为数组的下标是连续且增长(由低到高,由小到大)的所以存储时地址也是连续且每个比前面一个大4(因为每个字节是4)这个有助于对指南的理解
下面就快结束一维数组了哦
-
数组的大小 因为一个元素是4字节所以是28字节.
这样我们就可以计算数组个数了
2.开始二维数组啦(o(* ̄▽ ̄*)ブ)
⼆维数组的概念 前⾯学习的数组被称为⼀维数组,数组的元素都是内置类型的,如果我们把⼀维数组做为数组的元 素,这时候就是⼆维数组,⼆维数组作为数组元素的数组被称为三维数组,⼆维数组以上的数组统称 为多维数组。
那我们如何定义⼆维数组呢?语法如下:
type arr_name[常量值1][常量值2];
例如: int arr[3][5];
解释:上述代码中出现的信息
• 3表⽰数组有3⾏
• 5表⽰每⼀⾏有5个元素
• int 表⽰数组的每个元素是整型类型
• arr 是数组名,可以根据⾃⼰的需要指定名字!
我们来创建一个数组 如下图所示(本人电脑不会画画)
arr[7][3]={1,3,4,5,7,9,6,1,2,3,4,5,6,7,2,4,6,8,10,1,3}
当然我们还可以这么做:arr[7][3]={ {1,3,4,5,7,9,6},{1,2,3,4,5,6,7},{2,4,6,8,10,1,3}}
二维数组的下标行和列都是从零开始所以差不多和一维数组一样的用法
- 二维数组的输入和输出
二维数组的地址打印
从输出的结果来看,每⼀⾏内部的每个元素都是相邻的,地址之间相差4个字节,跨⾏位置处的两个元 素(如:arr[0][4]和arr[1][0])之间也是差4个字节,所以⼆维数组中的每个元素都是连续存放的。
最后
感谢大家观看到这里,谢谢大家。让我们共同进步吧!!!