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