C语言中数组定义方式

[复制链接]
248|2
 楼主 | 2019-2-11 16:46 | 显示全部楼层 |阅读模式
<1>前言
大家首先来思考一个问题,若是我们想要定义两个变量,求这两个数的平均数,该怎么求呢?
例如:int a = 10,b = 20
int average = (a + b) / 2;
上面的公式,我相信大家应该很快就能够求出来。
若是,我们想要定义5个变量,求他们的平均值呢?
我们是不是要这么写?
Int a = 1,b = 2,c = 3,d = 5,e = 5;
我相信这样写,大家应该也能求出来。不过,大家这个时候,应该会感觉到比较麻烦了,我们定义了太多的变量了。若是我们要求100个变量的平均数的话,那么岂不是我们要定义100个变量。这样,我想要是没有耐心的同学,肯定早就不干了吧!因此,我们聪明的程序员提出来一个叫做数组的概念。
<2>数组的概念
数组:我们把相同数据类型变量的集合称为数组。
<3>定义方式
数据类型  变量名[数组元素的个数]
例如:int a[5];//我们定义了5个int类型的元素。
<4>内存中的排序
int a[5];




由上图,我们可以看出:
<1>数组中共有5个元素,a[0],[1],a[2],a[3],a[4]
<2>数组的第一个下标为0,最后一个下标为数组元素个数-1
<3>数组中每个成员的大小:数组组中每个成员的大小,取决于数组元素的数据类型,此时数组成员的大小:4byte(一个int类型大小)
<4>整个数组的大小=一个数组成员的大小*数组元素的个数
即:4 * 5 = 20;
或者 sizeof(数组名),可得数组的大小
注意:数组的数组名标示数组首元素的首地址。
以int a[5]为例, 数组首元素为a[0],则它的地址为&a[0],故a 其实标示了&a[0].
思考:我们怎么理解a[0],a[1],a[2],a[3]?
a<===>&a[0]
a[0] =====>表示数组名a没有偏移,然后去对应地址中的数据。
a[1]======>表示a偏移了一个地址 1 个数组元素数据类型的大小,然后取该地址中的数据
a[2]======>表示a偏移了一个地址 2个数组元素数据类型的大小,然后取该地址中的数据
实例代码:




运行结果:



| 2019-3-13 12:58 | 显示全部楼层
看得懂一点啊!
| 2019-3-13 14:26 | 显示全部楼层
设么情况
扫描二维码,随时随地手机跟帖
*滑动验证:
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

关闭

热门推荐上一条 /4 下一条

快速回复 返回顶部 返回列表