数组(举例详解)

发布于:2024-06-16 ⋅ 阅读:(28) ⋅ 点赞:(0)

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

有了变量就可以存放数值了

存放几个数值可以

但是存放一百个呢?这时候就出现了数组

1.1数组的创建

数组是一组相同类型元素的集合。

数组的创建方式:

type_t   arr_name      [const_n]

type_t    是指数组的元素类型

arr_name   是指数组名

const_n    是一个常量表达式,用来指定数组的大小

说明可以放一百个元素 每个元素的类型都是整型

可以输入来指定arr数组的大小

说明VS不支持C99中的变长数组

const可以吗?

const是常变量,常变量是变量还是常量?

是变量。是变量就不能放在[  ]里,除非编译器支持变长数组

const在c++里是常量 在C语言里是常变量,也就是变量。

1.2数组的初始化

数组的初始化是指,在创建数组的同时给数组的内容一些合理初始值(初始化)。

变长数组是不支持初始化的

完全初始化 不完全初始化

不完全初始化 初始化一部分,其他元素默认初始化为0

给数组初始化的时候可以不指定数组大小

如果初始化数组没有给定大小 数组大小根据初始化内容来确定大小的

如果数组不初始化为随机值

这两种形式都可以初始化数组

arr中有四个元素

arr1中有三个元素

如果把这两个数组初始化 arr数组额外填了一个\0

arr1数组额外填了两个\0

这两种方式是一模一样的

b的ASCII码值为98

全局变量 和 静态变量static不初始化也为0

1.3一维数组的使用

int main()
{
    int arr[100] = {1,2,3,4,5,6};
    return 0;
}

如果我们想要拿到五该怎么做?

数组元素 下标从0开始的

为什么能访问到5呢 ?

其实用了[ ]操作符 [ ]为下标引用操作符,arr ,4 是[ ] 的两个操作数

什么是操作数? 例如: 2+3 2是+的左操作数 3是+的右操作数

如果想创建一个大小为100每个元素都是整型的数组,把他们初始化为1~100,一个一个输入很麻烦,这时候怎么办?

这时候需要写代码去赋值1~100

这里的100很固定,不好修改

为什么是400?

100个元素每个元素是整型4

每个元素是四个字节

用总元素字节个数/每个元素的字节个数得到有多少元素

这样数组里有多少元素 不用手动再修改程序中的值了

把数组大小改成200也一样

数组访问 不能一个整体去访问 而是需要一个一个元素去访问 如果要访问需要用到下标引用操作符

有同学会提问不是不能用变量吗

arr[ i ] 中的i怎么用了变量

弄混淆了

数组创建的时候int arr[ ]= {0} , arr [ ] 里不能使用变量,但也只是不支持C99中变长数组才不能使用变量 支持C99中变长数组可以使用变量

下面代码arr[ i ] 是在访问一个元素 不是在创建数组, 这里使用是可以的

这两个要区分开 不要混淆

int i = 0;
for(i = 0;i<sz;i++)
{
    printf("%d",arr[i]);
}

总结:

1. 数组是使用下标来访问的,下标是从0开始。

2. 数组的大小可以通过计算得到。

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

一维数组在内存中连续存放的!

随着数组下标的增长,地址是由低到高变化的

一维数组连续存放的特点 使得我们可以通过下标来访问数组,也可以通过指针来访问数组

结论:

随着数组下标的增长,元素的地址,也在有规律的递增。

由此可以得出结论:数组在内存中是连续存放的。


网站公告

今日签到

点亮在社区的每一天
去签到