一维数组(数值型数组)(eg:arr[10])

大家肯定对数组已经不陌生了,都见到过数组,比如arr[10] = {1,2,3,4,5,6,7,8,9,10};
装的是整数。那么下面我们讲会系统的讲一下 一维数组的知识点。(针对数值型数组

首先我们需要了解什么是数组?

1.数组的创建

1.1数组的概念:一组相同类型的元素的集合。

1.2数组的创建方式

type_t  name   [const_n]
type_t //数组的元素类型
name  // 数组名字
const_n   //数组的大小,长度

例如

int arr[10];
char ch[10];
float arr2[5];
double arr3[7];

以上就是对数组进行创建的方式。

上面数组的大小都是常量,那我们可不可以这样写?

int n = 10;
int arr[n];

数组创建,在C99标准之前, [] 中要给一个常量才可以,不能使用变量。在C99标准支持了变长数组的概念,数组的大小可以使用变量指定,但是数组不能初始化。

1.2 数组的初始化

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

int arr[10] = {1,2,3,4};
int arr2[] = {1,2,3};
int arr3[5] = {1,2,3,4,5};
char arr4[3] = {'a',98,'c'};
char arr5[] = {'a','b','c'};
char arr6[] = "abcdef";

我相信大家看到这里肯定会有疑问

第一个数组是10个长度,我们却初始化4个元素,那后六个元素是什么,还是不存在?

第二个数组没有定义长度,那他的大小是什么?

我们可以通过程序运行一下

 我们可以看到这里数组的长度还是10,数组元素初始化的部分是1 2 3 4,没有初始化的部分是0;

我们再来看第二个程序

这里我们没有在数组里定义他的大小,直接初始化元素,这时候数组长度为3,元素为1 2 3.

由此我们可以得到这样的一个结论

当数组创建时,定义了长度多长,数组的长度就是多长,当我们一旦初始化数组元素,未初始化的元素默认为0;但是当我们没有初始化数组,数组元素为随机值。

如果我们没有定义长度,那么我们初始化的元素个数就是数组的长度。

(大家可以自行测试一下)

1.3数组的引用

关于数组的引用需要注意的一点:

只能引用数组的某一元素,不能一次整体调用数组的全部元素。

1.3.1下标引用操作符  []

我们引用数组的时候需要用到下标引用操作符  []

我们要知道数组的下标是从0开始的

比如 这个数组有五个元素,那么第一个元素要引用出来就是arr[0],以此类推,所以我们要找哪个元素就去找其对应的下标就行。

int arr[5] = {1,2,3,4,5}
//            0 1 2 3 4
int a = arr[0];

大家肯定有这个疑问,我们在定义数组的  []   和引用元素的   []  是一样的吗?

很显然不是

int arr[10];    这个是定义数组,所以[]表示的是数组元素的个数;

a = arr[5];    这个是引用数组元素,表示的是引用arr数组中下标为5的元素。

他们俩的最大区别就是有无数据类型。

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

我们现在了解了数组的创建,初始化和引用。那么数组在内存中是怎样存储的呢?数组每个元素的地址是怎样变化的呢?

看下图

 我们可以看到数组的五个元素在内存中的地址是逐渐增加4的

我们这里只需要知道数组在内存中是连续存放的,并且随着数组下标的增大,地址也有规律的变大。

关于sizeof()和strlen我们会专门在一期博客给大家解答。

  • 9
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

要追随光

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值