文章目录
- 1、数组的理解
- 2、各类数组的定义
- 3、变长数组
- 4、字符数组
1、数组的理解
一维数组:比如定义一个int a[3];,那么可以将其看成两部分,a【3】为①,int为②。意思就是有一个数组名字为a,里面包含3个(池),每个里面放的是int类型数据。
二维数组:二维数组int b【2】【3】,同理,可以看成两部分b【2】为第①部分,int【3】为②,同理,意思就是有一个数组名字为b,里面包含2个(池),每个里面放的是3个int类型的数据
因为内存是线性的,二维数组其实是叫由一维数组组成的一维数组,所以简略的说为二维数组
指针数组:char *c【3】,原理同上
2、各类数组的定义
int main(void)
{
int a[3] = { 100, 200, 300 };//初始化时赋值
a[0] = 100;//单个赋值
a[1] = 200;
a[2] = 300;
int b[100] = {[0 ... 49]=10,[5 ... 99]=100};//批量赋值
return 0;
}
3、变长数组
也就是数组的下标是一个变量,变量的大小可自行修改,所以就达到数组变长的作用。
注意:变长数组不可以进行初始化。
4、字符数组
字符串的存储方式如下所示,
数组的初始化赋值就等于是将常量区拷贝到栈内存储,字符串的存储末尾会存储一个’\0’,字符就没有。
具体代码如下:
任意数组(变量名)代表的是首元素地址
解释:比如a1为例,a则表示的整个数组的首地址,也就是a[0],要指向整一个数组的话在前面取址即可,既是&a1。
如下图所示:红色S3则表示取首地址,蓝色&s3表示指向整个数组