目录
概念
什么是数组呢?从名字上来看,数组、数组是不是就是数据的组合呢?让我们来看看数组的概念,数组是⼀组相同类型元素的集合,我们需要注意的是数组中存放的是1个或者多个数据,但是数组元素个数不能为0。同时 数组中存放的多个数据,是相同类型的。
一维数组
定义
一维数组的定义一般来讲需要包括数据类型,数组元素个数,数组名,它的一般形式为:
type arr_name[
常量值
];
type
指定的是数组中存放数据的类型,可以是:
char
、
short
、
int
、
float
等,当然也可以⾃
定义的类型。
arr_name
指的是数组的名字,同时数组名也代表着
数组的首元素地址
。
[ ] 中的常量值是⽤来指定数组的⼤⼩的,即数组元素个数,
不仅仅是常量值,也可以是常量表达式的形式,比如[3+5]
在
C99标准之前
,C语⾔在创建数组的时候,数组⼤⼩的指定只能使⽤
常量、常量表达式
,或者如果我
们初始化数据的话,可以省略数组⼤⼩。也就是说,C语言
不
可以对数组的大小
作动态的定义
,比如下面在两个定义方式是错误的
int n;
scanf("%d",&n);
int arr[n];//想要通过在程序中输入数组的大小
int n = 10;
int a[n];//使用变量来定义数组的大小
因为这样的语法限制,让我们创建数组
就不够灵活,有时候数组⼤了浪费空间,有时候数组⼜⼩了不够⽤,于是
C99中给⼀个
变⻓数组(variable-length array,简称 VLA)
的新特性,允许我们可以使⽤变量指定
数组⼤⼩。

上⾯⽰例中,数组
arr1、arr2、arr
都是变⻓数组,因为它的⻓度取决于变量
的值,编译器没法事先确定。
变⻓数组的根本特征,就是
数组⻓度