今天学习了一维数组和选择排序、冒泡排序。来到了c语言学习的第一座大山----------数组。以下将详细介绍本次学习的内容。
一、数组
定义:一组相同类型数据的集合,其本质是相同类型变量的集合。
语法: 定义一个数组
类型说明符 数组名[常量表达式];
类型说明符指的是基本的数据类型,数组名代表着数组内存空间的名字,也可以表示为第一个数据的地址,常量表达式表示数组的长度。
我们说数组本身也是一个数据类型。
数组元素的访问
语法:a[下标]
下标本质是偏移量。
数组的特点:
1.连续性 --一片连续空间
2.有序性 --元素依次存储
3.单一性 --单一类型的元素
需要注意数组的越界问题,此时没有语法错误,编译器不报警,需要自加小心。
数组的初始化
int a[10] = {1,2,3,4,5,6,7,8,9,10}; //全部初始化
int a[10] = {1,2,3,4,5}; //部分初始化--依次给到数组元素 ,没有给值的元素,默认初始化为0
将数组初始化为0
int a[10] = {}; //都初始化为0
int a[10] = {0}; //都初始化为0
数组不初始化 ---数组中为垃圾值
数组长度可以省略有前提 --必须要有初始化的值
eg: int a[] = {1,2,3}; //编译器会通过值来计算数组长度
注意数组赋值不能整体赋值,需要一个一个的赋值。
二、选择排序
思想:为合适的位置,选择一个合适的数。
思路:从左到右,依次为每一个位置寻找最小值,去跟其右边的值依次比大小,找出最小的值放在该位置上。
工具:用两个for循环嵌套实现。
三、冒泡排序
每个数都跟相邻的数比大小,从小到大排列。
我们发现完成第一次冒泡排序,数组右边出现数组元素的最大值。第二次冒泡排序,数组右边出现数组元素的次大值在最大值的左边。由此可见,每次冒泡排序都会冒出一个较大值在数组的右边。
工具:两个for循环嵌套。