数组

时间:2022-12-09 22:00:31

本章重点:

数组

一、 一维数组的创建和初始化

  • 创建时,【】内必须是常量,这样创建是错误的。(不能是变量)

  • 不完全初始化,剩下的元素默认初始化0,
  • 数组

  • ,余下七位数都是0
  • 数组

  • 这两种对字符类型的初始化都可以,值得注意第二种相当于把\0存储进去,但显示还是0
  • 对sizeof和strlen的理解:sizeof计算数组所占空间的大小,而srtlen计算的是字符串的长度,遇到\0就停止计算

剖析sizeof和strlen的区别

  1. 二者并无关联
  2. strlen是求字符串长度,只能针对字符串求长度///sizeof  计算变量、数组、类型的大小---单位是字节
  3. strlen是库函数,需要引头文件,而sizeof是操作符

易错题

数组

输出结果:4 3 3 随机值

最后一个易错:第二种没有出现\0,而srelen 只有遇到\0才会停止,所以是随机值


二、一维数组在内存中的存储

结论:数组在内存中是连续存放的

数组

数组

每个地址相差4,一个整型,4个字节。


三、二维数组的创建和初始化

1、二维数组的创建

数组

第一个【】为行,第二个【】为列,类似于行列式。

2、二维数组的初始化

数组

每一个单独的【】都是一行

TIP:行可以省略,但列不可省略

数组

对行和列的标号也是从0开始


三、二维数组在内存中的存储

数组

重要理解:可以将二维数组arr【0】第一个中括号堪称数组名,第二个中括号看成下标,直接转化为一维数组


四、数组作为函数参数

函数冒泡排序----flag

TIP:

为什么向一个函数传入一个数组的首地址,就可以对数组后面的元素进行操作?

因为数组名称代表就是数组分配的内存映射地址首地址,而数组的存储地址是连续的,这就是说:只要知道数组的首地址和数组类型(一个数组元素的分配空间)就可以访问任意下标的数组元素。


数组

输出结果一样,可见数组名就是首元素地址。但有两个例外


数组

&数组名特别记忆,表示整个数组