C语言学习笔记:一维数组

本文详细介绍了数组的一维定义,包括数组的创建规则、特性(单一性、有序性和连续性)、引用方式,以及初始化、越界访问、常见排序算法(倒序、选择排序、冒泡排序和插入法排序)等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.一维数组的定义

int a[10]表示一次性定义10个整形变量。

例子:输出a[10]中的元素

数组是拿已有的数据类型创建的新类型。

注意:1.数组可以由任意数据类型创建,但不能是void型;

2.数组名命名规则遵循标识符命名规则;

3.方括号中的长度>=1,可以是常量和符号常量,不能是变量。

2.数组的三大特性

1.单一性:数组中每个元素有独自的存储空间;

2.有序性:下标小的元素地址靠前;

3.连续性:每个元素存储空间之间没有间隔。

3.一维数组的引用

注意:数组不能整体引用,如

int a[10];

a = 10;

是错误的,因为1.a时数组型,10是整形不匹配;2.数组有多个元素,10不知道赋给哪一个;

3.数组的数组名为数组的首元素地址,即

a等价于&a[0]

printf("%p",a)打印的是地址

因此,当数组长度过长时,可以这样输出:

4.去掉变量名,剩下类型名

int a[10]去掉a,剩下的int[10](长度为10的int型)为类型名,但和int不是一个类型!

5.int a[10]的“[]”不是下标运算符,是用来说明类型。

4.一维数组初始化

{}的元素个数<=[]的元素个数

5.越界访问

如 inta[10];

a[10] = 1;会将元素a[10]存在数组a[10]存储空间之后,占用分配给其他数据的存储空间,造成严重的程序错误。

a[-1]则在数组存储空间之前存储,方括号内为偏移量,正向后负向前,数的大小为从首地址向前(后)访问到此数的长度。

6.排序

1.倒叙

中间划分,前后交换

2.选择排序

在合适的位置上放上合适的数

算法复杂度n^2

外层for限制次数,内层选出最小的数放数列左边

3.冒泡排序

数组中相邻的两个元素两两比较,小的放前,大的放后

算法复杂度n^2

外层限制次数,内层选出最大的数放右边

4.插入法排序

算法复杂度n^2

第3个元素插入与前2个比,排序;第4个元素插入与前3个比,排序...

排序的目的是为了查找,在前提是有序数列时,可以通关二分查找法提升效率。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值