<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个数组元素数据类型的大小,然后取该地址中的数据

实例代码:

 

运行结果:

 

C语言中数组定义方式的更多相关文章

  1. c语言中数组相关问题

    c语言中数组相关问题: 1.数组基本定义: 相同数据类型的元素按一定顺序排列的集合,就是把有限个类型相同的变量用一个名字命名,然后用编号区分他们的变量的集合,这个名字称为数组名,编号称为下标.组成数组 ...

  2. js便利关联数组 及数组定义方式 分类

    "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv=& ...

  3. 对于C语言中数组名是指针的理解

    我们都知道,c语言中数组名是一个指针,比如下面这段代码 #include<iostream>using namespace std;int main(){ int a[4]={1,2,3, ...

  4. C语言中宏定义(#define)时do{}while(0)的价值(转)

    C语言中宏定义(#define)时do{}while(0)的价值 最近在新公司的代码中发现到处用到do{...}while(0),google了一下,发现Stack Overflow上早有很多讨论,总 ...

  5. c 语言中宏定义和定义全局变量的区别

    宏定义和定义全局变量的区别: 1 作用时间不同. 宏定义在编译期间即会使用并替换,而全局变量要到运行时才可以. 2 本质类型不同. 宏定义的只是一段字符,在编译的时候被替换到引用的位置.在运行中是没有 ...

  6. C语言中数组长度不能用变量定义吗?

    C语言里,所有变量空间都是在程序运行之初向系统申请的,包括指针,除了一些动态申请方式如malloc函数.没有申请的空间系统是不允许读写的.那么如果一个数组大小是变量定义,则在程序运行前不能确定数组大小 ...

  7. c语言中数组的定义和java中数组定义的一些区别

    感谢原文:https://blog.csdn.net/gzwdz778/article/details/79799408 一维情况下: c中,数组的声明需要给出数组的维数,比如: int arr[5] ...

  8. C语言中数组与指针的异同之处!你不知道的编程奥秘~

    C语言的数组和指针一直是两个容易混淆的东西,当初在学习的时候,也许为了通过考试会对指针和数组的一些考点进行突击,但是很多极其细节的东西也许并不是那么清楚.本篇侧重点在于分析数组与指针的关系,什么时候数 ...

  9. C语言中内存对齐方式

    一.什么是对齐,以及为什么要对齐: 1. 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问, ...

随机推荐

  1. maven问题总结

    1.maven下载jar包速度慢 1.maven下载jar包速度慢(解决办法) 现在maven项目非常流行,因为它对jar实行了一个非常方便的管理,我们可以通过在pom.xml文件中做对应的配置即可将 ...

  2. VisualSVN Server迁移的方法

    VisualSVN Server迁移涉及到两种情况: 第一种情况:VisualSVN Server没有更换电脑或者服务器,只是修改Server name. 第二种情况:当VisualSVN Serve ...

  3. 优化tableView加载cell与model的过程

    优化tableView加载cell与model的过程 效果图 说明 1. 用多态的特性来优化tableView加载cell与model的过程 2. swift写起来果然要比Objective-C简洁了 ...

  4. [翻译] AFSoundManager

    AFSoundManager iOS audio playing (both local and streaming) and recording made easy through a comple ...

  5. Go语言-windows安装配置篇

    Go-windows安装配置 前言 学习完了python基础,顺便也要提前学习一下go啦,抱着这样的心情,今晚尝试了安装一下go,很顺利的完成了,没有难度. 需要了解更多的关于Go的基本信息可以去维基 ...

  6. C盘下出现msdia80.dll文件

    删除方法 https://jingyan.baidu.com/article/63acb44acef55661fdc17e56.html 或者 https://www.cnblogs.com/ggll ...

  7. if 条件为假(不成立),对应的语句块不会执行. 然后往下走

    if  的条件为真,则执行语句块. 如果条件不真,则执行后面的语句块, 即  : if False: print("卡卡卡") # 前面的if条件是False,提示"un ...

  8. 安装ubuntu server时可能会需要的配置

    1.修改源 笔者比较习惯用163的源,配置如下: sudo vi /etc/apt/sources.list 163源为: deb http://mirrors.163.com/ubuntu/ pre ...

  9. [19/05/03-星期五] GOF23_模式总结

    总结:

  10. flex布局中flex-shrink的计算规则

    下面代码来自MDN html部分: <p>the width of content is 500px, flex-basic of flex item is 120px.</p> ...