C语言--数组笔记

一. 数组的概念

数组是⼀组相同类型元素的集合。
数组中存放的是1个或者多个数据,但是数组元素个数不能为0。
数组中存放的多个数据,类型是相同的。
数组的元素都是内置类型的,如果我们把⼀维数组做为数组的元素,这时候就是⼆维数组,⼆维数组作为数组元素的数组被称为三维数组,⼆维数组以上的数组统称为多维数组。

二.一维数组

2. 1⼀维数组的创建和初始化

2.1.1 数组创建

⼀维数组创建的基本语法如下:
存放在数组的值被称为数组的元素,数组在创建的时候可以指定数组的⼤⼩数组的元素类型。
type 指定的是数组中存放数据的类型,可以是: char short int float 等,也可以⾃
定义的类型
arr_name 指的是数组名的名字,这个名字根据实际情况,起的有意义就⾏。
[] 中的常量值是⽤来指定数组的⼤⼩的,这个数组的⼤⼩是根据实际的需求指定就⾏。

2.1.2 数组的初始化

数组的初始化⼀般使⽤{},将数据放在⼤括号中。

2.1.3 数组的类型

数组也是有类型的,数组算是⼀种⾃定义类型,去掉数组名留下的就是数组的类型。
例:

2.2 ⼀维数组的使用

2.2.1 数组下标

C语⾔规定数组是有下标的,下标是从0开始的,假设数组有n个元素,最后⼀个元素的下标是n-1,下标就相当于数组元素的编号。
在C语⾔中数组的访问提供了⼀个操作符 [ ] ,这个操作符叫:下标引⽤操作符
例:

2.3一维数组在内存中的存储

例:依次打印数组元素的地址
存放方式:

数组在内存中是连续存放的。

三.二维数组

3.1维数组的创建

3.2 初始化

例:

arr2,arr3,arr4为不完全初始化

arr9为完全初始化

arr5,arr6为按照行初始化

arr6,arr7初始化时省略⾏,但是不能省略列,根据数组元素的个数常量值2可以计算出数组有几行

3.3二维数组的输入和输出

例1:

首先利用两个for循环输入数组元素,再利用两个for循环按照行进行打印,在循环输出语句中如何换行,每执行一次总的for循环,打印一个换行符,即可打印一个二维数组。

如何按列进行打印

将循环输出语句中 i 和 j 的判断条件互换,再将输出语句中的 i 和 j 互换,即可按列进行打印

3.4二维数组在内存中的存储

二维数组在内存中是连续存放的

四.c99中的变长数组

在C99标准之前,C语⾔在创建数组的时候,数组⼤⼩的指定只能使⽤常量、常量表达式,或者如果我们初始化数据的话,可以省略数组⼤⼩。但这样 创建数组 就不够灵活,有时候数组⼤了浪费空间,有时候数组⼜⼩了不够⽤ 的。
c99标准之后,支持了变长数组,这个时候允许数组的大小是变量,但是这种指定方式的数组是不能初始化的。
变⻓数组的根本特征,就是数组⻓度只有运⾏时才能确定,所以变⻓数组不能初始化。它的好处是程序员不必在开发时,随意为数组指定⼀个估计的⻓度,程序可以在运⾏时为数组分配精确的⻓度。有⼀个⽐较迷惑的点,变⻓数组的意思是数组的⼤⼩是可以使⽤变量来指定的,在程序运⾏的时候,根据变量的⼤⼩来指定数组的元素个数,⽽不是说数组的⼤⼩是可变的。数组的⼤⼩⼀旦确定就不能再变化了。
vs2022不支持c99中的变长数组。

例:

int m=a+b;

int arr[m];

数组 arr 就是变⻓数组,因为它的⻓度取决于变量 m  的值,编译器没法事先确定,只有运⾏时才能知道 m  是多少。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值