一维数组【数组】

目录

数组的概念

⼀维数组的创建和初始化

1.数组创建

2.数组的初始化

可以不指定大小

3.数组的类型

⼀维数组的使用

数组下标

下标引用操作符

数组元素的打印

数组的输入

一维数组在内存中的存储

结论:

为了观察方便,可以将x64改成x86

%p,%x

特点:

sizeof 计算数组元素个数

1)计算数组所占内存空间的总大小

2)计算⼀个元素的大小

3)计算出数组的元素个数

实例

strlen与sizeof的区别


数组的概念

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

  • 数组中存放的是1个或者多个数据,但是数组元素个数不能为0。
  •  数组中存放的多个数据,类型是相同的。

数组分为⼀维数组和多维数组。

⼀维数组的创建和初始化

1.数组创建

基本语法如下:

  • type 指定的是数组中存放数据的类型,可以是: char、short、int、float 等,也可以自定义的类型。
  • arr_name 指的是数组名的名字。
  • [ ] 中的常量值是⽤来指定数组的大小的,这个数组的大小是根据实际的需求指定就行。

存放在数组的值被称为数组的元素,数组在创建的时候可以指定数组的大小数组的元素类型。eg:char ch[8];  //存储某个班级的20⼈的数学成绩

2.数组的初始化

数组在创建的时候,我们需要给定⼀些初始值,这种就称为初始化

数组的初始化⼀般使用大括号,将数据放在大括号中。

可以不指定大小

如果给数组初始化的话,可以不指定大小。//数组大小根据初始化内容决定。

3.数组的类型

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

eg:int arr1[10];   //int是数组元素的类型

                            //arr1数组的类型是 int [10]

⼀维数组的使用

数组下标

定数组是有下标的,下标是从0开始的,假设数组有n个元素,最后⼀个元素的下标是n-1,下标就相当于数组元素的编号。

如:int arr[10] = {1,2,3,4,5,6,7,8,9,10}

下标引用操作符

作用:访问到数组的元素。

如:访问下标为7的元素,就可以使⽤ arr[7]。

数组元素的打印

如果想要访问整个数组的内容,只要我们产生数组所有元素的下标就可以了,那我们使用for循环产生0~9的下标,接下来使用下标访问就行了。

数组的输入

明白了数组的访问,当然我们也根据需求,自己给数组输⼊想要的数据,如下:

一维数组在内存中的存储

想要了解数组在内存中的存储,可以依次打印数组元素的地址:

运行结果:

//从输出的结果我们分析,数组随着下标的增长,地址是由小到大变化的,并且我们发现每两个相邻的 元素之间相差4(因为⼀个整型是4个字节)。

结论:

一维数组在内存中应该是连续存放地。

//这就为后期我们使用指针访问数组奠定了基础。

为了观察方便,可以将x64改成x86

//为了观察方便,可以将x64改成x86。

  • x86对应32位环境
  • x64对应64位环境

%p,%x

%p,%x是专门用来打印地址的。

特点:

           相同点:都是16进制的形式打印。

           不同点:

                %p最前面的0不会省略。(大写)

                %x前面的0会省略。(%x小写;%X大写)

//要使%x前面的0不省略,可以在x前面加#  如:%#x

sizeof 计算数组元素个数

sizeof 中C语⾔是⼀个关键字,是可以计算类型或者变量⼤⼩的,其实 sizeof 也可以计算数组的 ⼤⼩。

1)计算数组所占内存空间的总大小

//也可以写成printf("%d\n", sizeof(int[10]));

//输出的结果是40,计算的是数组所占内存空间的总⼤⼩,单位是字节

//一个int是4个字节。

2)计算⼀个元素的大小

3)计算出数组的元素个数

//结果是:10,表示数组有10个元素。

实例

strlen与sizeof的区别

strlen求字符串长度,只能针对字符串

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值