C 语言程序设计——数组

网站优化

  此文带你入门C数组,认真看,必有收获

  三步走战略的打法,五大能力培养体系的构建

  数组、指针、函数,并列 C 语言三大重点,尤其 C 指针,堪称 C 之灵魂,从 C 数组开始,勤思苦练,必须多敲、搞清楚底层原理,系统设计,从宏观、哲学上理解 C 之精髓

  强烈建议:b 站郝斌 C 视频结合着看

  简单理解数组

  2、

  理解数组定义

  int ar[10]; 这只能表示存在一个拥有 10 个 int 类型的元素的数组 ar,在这条定义语句之外的其他地方,ar 不表示数组的任何一个元素,也不表示数组的所有元素,它仅仅是数组名称而已

  3、

  数组元素的使用

  数组元素的定义、与使用,是完全不一样的

  设有如下数组:int a[10];

  a 数组的 10 个元素分别是:a[0],a[1], a[2]......a[9]

  数组元素下标范围取值范围在[0, n)之间,其中 n 为数组元素个数,这个数组将在内存中占用 40B 的连续存储空间

  数组内存分布

  数组在内存中的存储

  int array[5];

  array 数组应该有 5 个元素:array[0]、array[1]、array[2]、array[3]、array[4]

  此时,我们的考虑,array[0]、array[4] 的前面 array[-1]、后面 array[5] 是否还有内存空间,还能访问到吗?

  逻辑上不存在,物理上存在!!!

  数组的定义仅仅约束的是人的思想,根本无法约束计算机的行为,关于数组下标越界,只是一个传说!

  C 语言编译软件是不能发现“下标越界”的错误的!这意味着:“下标越界”这种错误完全需要靠程序员非常高的编程素养来避免!

  数组常见操作

  1、

  数组元素的遍历

  对于数组中的元素,进行不重复、无遗漏的一次性访问

  A、总是从下标为 0 的元素开始遍历

  B、下标总是连续变化,这意味着,对数据的遍历是连续的,不跳跃,不重复

  数据存储在数组中需要满足的 3 个条件:

  A、从下标为 0 的第一个元素(首元素)开始存放

  B、连续存放

  C、上述两个特点必须保持动态满足(意思是:无论删除还是插入数据,在删除或插入数据后,依然要满足上述两个基本条件)

  对于数组的编程,主要考虑的是下标,或者可以说:玩数组就是玩下标

  二维数组

  2、

  内存映像图

  3、

  二维数组赋初值

  字符数组与字符串

  char s[6] = "abcdef"; //语法错误,最后有一个 0 结束标志

  2、

  运算符:sizeof()

  它是一个运算符,而非函数!!!,是一个单目运算符,其运算优先级在单目运算符中最低

  C、sizeof(字符串常量)

  sizeof("abcde") ==> 6B

  其运算结果:该字符串常量在内存中所占用的字节数(该数值是字符串长度+1,这个 1B 就是 0 结束标志!)

  总结:

  sizeof() 是计算所占用的空间字节大小

  strlen() 是计算字符串数组的长度,遇 0 则止

  本篇文章仅仅是数组入门,对于数组的本质掌握是非常的关键,尤其在跟指针的结合,理解,打好基础,进阶提升

标签: 网站优化