Bootstrap

新手学习C语言打卡8(数组)

数组:

数组:是一种容器,可以用来存储同种类数据类型的多个值

数组的本质是地址

数组的定义:数据类型 数组名[长度 ] eg:int arr=[3];

                   特点1.连续的空间 特点2.一旦定义,长度不可变

数组的初始化:数据类型 数组名[长度]={数据值,数据值. . .}

                       长度省略:数据值的个数就是数组长度

                       长度未省略:①数据值的个数<=长度

(会在后面自动补充默认值:整数0;小数:0.0;字符:'\0';字符串:NULL)即表示空白

                                            ②数据值的个数>=长度 (会报错)

元素访问:获取 修改

索引:就是数组的一个编号,也叫做:角标、下标、编号

特点:从0开始的,连续+1,不间断。通过索引就可以获取或修改数据      

获取 修改:

获取的格式:①变量 = 数组名[索引] 修改的格式:数组名[索引]=数据值

                   ②printf("占位符",数组名[索引] );  

                

数组遍历:

遍历:依次获取数组中的每一个元素

内存中的变量 数组:

内存:软件在运行时,用来临时存储数据的

内存地址:操作系统给内存每个字节安排的编号(即一个地址为 一个字节)

内存地址的规则:①32位操作系统,内存地址以32位的二进制表示 (共计2的32次方个地址/字节)=4GB

                             ②64位操作系统,内存地址以64位的二进制表示(共计2的64次方个地址/字节)=17,179T

                              ps:为方便阅读会将二进制转换为十六进制

内存地址的作用:快速的操作内存中的数据

C语言中获取内存地址:先读取首地址 &--取地址运算符

数组的内存地址:是第一个元素的第一个字节空间的地址,也是首地址

                             首地址[索引] (索引即偏移量)

思考:

1.通过变量的首地址,就可以确定变量中存储的数据 只能获取首字节的数据

2.为什么数组的索引是从0开始的? 因为索引为偏移量,最开始不偏移

3.数组的长度如何计算?(元素的个数) 公式:总长度/数据类型占用的字节个数

数组的常见问题
数组作为函数的参数:

ps:在C语言中,printArr函数通常用于打印数组的内容。

 1.

                                                                此时函数不具有通用性

2.

数组作为函数的形参实际上传递的是数组的首地址

定义处:arr表示的就是完整的数组

函数中的arr:只是一个变量,用来记录数组的首地址

在函数中打印arr时没有&--取地址运算符

(%zu用于输出size_t型,通常无符号)

               

                        

3、4

在64位的操作系统当中,是以64个二进制表示内存地址值

如果要在函数中对数组进行遍历的话,记得一定要把数组的长度一起传递过去

5.

此时函数才具有通用性,把数组中的每个数据遍历出来

数组的索引越界:

即访问了不存在的索引(程序不会报错),超出了数组范围,数据不可控

最小索引:0 ;最大索引:长度-1

;