数组
数组(+冒泡排序的和冒泡排序的优化)(零基础学习C语言)
1.一维数组的创建和初始化
数组在创建的时候如果想不指定数组的确定的大小就得初始化。
数组的元素个数根据初始化的内容来确定。
数组(+冒泡排序的和冒泡排序的优化)(零基础学习C语言)
数组(+冒泡排序的和冒泡排序的优化)(零基础学习C语言)
数组(+冒泡排序的和冒泡排序的优化)(零基础学习C语言)
数组(+冒泡排序的和冒泡排序的优化)(零基础学习C语言)
数组(+冒泡排序的和冒泡排序的优化)(零基础学习C语言)
数组(+冒泡排序的和冒泡排序的优化)(零基础学习C语言)
数组(+冒泡排序的和冒泡排序的优化)(零基础学习C语言)
注意:
sizeof计算的是所占空间的大小,元素个数*元素类型(单位是字节)
strlen 计算字符串中\0前的字符个数(\0不算字符串的内容)
数组(+冒泡排序的和冒泡排序的优化)(零基础学习C语言)
数组(+冒泡排序的和冒泡排序的优化)(零基础学习C语言)
strlen 函数只有遇到\0后才停止计算长度
数组(+冒泡排序的和冒泡排序的优化)(零基础学习C语言)
2.一维数组的使用
数组(+冒泡排序的和冒泡排序的优化)(零基础学习C语言)
打印每一位元素一般用循环
数组(+冒泡排序的和冒泡排序的优化)(零基础学习C语言)
数组(+冒泡排序的和冒泡排序的优化)(零基础学习C语言)
数组(+冒泡排序的和冒泡排序的优化)(零基础学习C语言)
数组(+冒泡排序的和冒泡排序的优化)(零基础学习C语言)
3.一维数组在内存中的存储
数组(+冒泡排序的和冒泡排序的优化)(零基础学习C语言)
p--->point指针的意思
%p就是打印地址的意思
数组(+冒泡排序的和冒泡排序的优化)(零基础学习C语言)
每块空间存储 的是int 类型的 是4个字节,所以每个地址之间差4
以一个字节为一个存储单元
数组(+冒泡排序的和冒泡排序的优化)(零基础学习C语言)
下标连续增长,地址连续
数组(+冒泡排序的和冒泡排序的优化)(零基础学习C语言)
数组(+冒泡排序的和冒泡排序的优化)(零基础学习C语言)
4.二维数组的创建及初始化
数组(+冒泡排序的和冒泡排序的优化)(零基础学习C语言)
int arr[3][4]三行四列
数组(+冒泡排序的和冒泡排序的优化)(零基础学习C语言)
数组(+冒泡排序的和冒泡排序的优化)(零基础学习C语言)
数组(+冒泡排序的和冒泡排序的优化)(零基础学习C语言)
当不完全初始化时,剩下的元素也默认的是0
数组(+冒泡排序的和冒泡排序的优化)(零基础学习C语言)
1 2 3 4
5 0 0 0
0 0 0 0
可以将二维数组的每一行当做一个一维数组进行初始化
数组(+冒泡排序的和冒泡排序的优化)(零基础学习C语言)
1 2 3 0
4 5 0 0
0 0 0 0
数组(+冒泡排序的和冒泡排序的优化)(零基础学习C语言)
数组(+冒泡排序的和冒泡排序的优化)(零基础学习C语言)
1 2 3 0
1 2 0 0
数组(+冒泡排序的和冒泡排序的优化)(零基础学习C语言)
数组(+冒泡排序的和冒泡排序的优化)(零基础学习C语言)
数组(+冒泡排序的和冒泡排序的优化)(零基础学习C语言)
5.二维数组的存储
数组(+冒泡排序的和冒泡排序的优化)(零基础学习C语言)
数组(+冒泡排序的和冒泡排序的优化)(零基础学习C语言)
数组(+冒泡排序的和冒泡排序的优化)(零基础学习C语言)
像一维数组一样是连续存放的
每一行的数组名像一维数组
数组(+冒泡排序的和冒泡排序的优化)(零基础学习C语言)
二维数组可以看做多个连续的一维数组组成的一个数组
6.数组作为函数参数
数组(+冒泡排序的和冒泡排序的优化)(零基础学习C语言)
冒泡排序
例:
思路:
两两相邻比较,一次冒泡,比较n-1次
若有n个元素则进行n-1趟冒泡排序
数组(+冒泡排序的和冒泡排序的优化)(零基础学习C语言)
两两比较 9+8+7+6+5+4+3+2+
数组(+冒泡排序的和冒泡排序的优化)(零基础学习C语言)
注意:
数组(+冒泡排序的和冒泡排序的优化)(零基础学习C语言)
函数中数组首元素的地址是4个字节,arr[0]是4个字节
数组(+冒泡排序的和冒泡排序的优化)(零基础学习C语言)
函数实现:
1.可以用数组接收数组(传递arr用arr[]来接收可以不告诉数组的长度)
2.因为数组专递的是数组首元素地址,所以也可以使用指针来接收
数组(+冒泡排序的和冒泡排序的优化)(零基础学习C语言)
代码优化
当有一趟冒泡排序后,发现没有数需要进行交换,说明数都排好序了,可以直接结束排序,退出打印
数组(+冒泡排序的和冒泡排序的优化)(零基础学习C语言)
思路:
数组(+冒泡排序的和冒泡排序的优化)(零基础学习C语言)
数组名到底是什么
1.数组名是首元素地址
数组(+冒泡排序的和冒泡排序的优化)(零基础学习C语言)
数组(+冒泡排序的和冒泡排序的优化)(零基础学习C语言)
两个例外:
数组(+冒泡排序的和冒泡排序的优化)(零基础学习C语言)
数组(+冒泡排序的和冒泡排序的优化)(零基础学习C语言)
虽然数值相同但是意义不同
数组(+冒泡排序的和冒泡排序的优化)(零基础学习C语言)
数组(+冒泡排序的和冒泡排序的优化)(零基础学习C语言)
因为&arr+1后跳过整个数组的空间
数组(+冒泡排序的和冒泡排序的优化)(零基础学习C语言)
数组(+冒泡排序的和冒泡排序的优化)(零基础学习C语言)