数组:

数组是一系列相同类型的有序数据的集合,数组中的每一个元素都是同一个数据类型,所有元素共用一个名字,用下标来区别数组中的每一个元素。

C语言中,数组属于构造数据类型。一个数组中含有多个数组元素,每一个数组元素都是一个普通变量。根据数组中存放的数据类型,数组可分为:数值数组、字符数组、指针数组、结构体数组等。

一维数组:

数组中每个元素只带有一个下标时,称为一维数组。

一维数组是最基本的数据结构。
对数组中的每一个数据的称呼,可以是数组元素、数组分量,或者下标分量。
每个数组元素由所在的位置序号来区分,位置序号称为数组元素的下标。每一个数组元素都是一个相对独立的变量,其实,对数组的操作,往往要转换成对其中数据元素的操作。

一维数组的定义方式:

类型标识符 数组名[元素个数];
int arr[7];
定义了一个名为arr的整型数组,数组中有7个元素。

数组元素的有序性:

并不是说数组中各个元素值的大小有序,而是同一个数组的数组元素在内存中的存储空间是连续的,按照数组元素的下标从小到大依次存放。其中,数组名代表该数组的首地址,例如上例中,arr是数组名,代表数组在内存中的首地址,因为数组元素依次存放,所以如果知道首地址,可以推断出数组中每个元素的地址。

数组元素首地址 = 数组首地址 + 元素下标 * sizeof(数组类型)

arr[3] = 2000 + 3 * 4 = 2012

说明:
  • 类型标识符说明数组元素的类型,可以是int、long、char、float、double等。
  • 数组名的命名规则与变量的命名规则相同,遵循标识符的命名规则。
  • 数组元素的下标从0开始,所以arr[0]为第一个元素,arr[6]为该数组的最后一个元素。
  • “元素个数”即数组长度,只能是一个整型表达式,可以是符号常量。
  • C语言不允许使用变量定义长度不定的动态数组,所以“元素个数”中不能包括变量。
  • 定义数组时,数组元素两边一定是方括号,写成括号和花括号是不合法的。
  • 和变量一样,可以在一个类型声明中声明多个数组。如:double a[6],b[7];也可以变量和数组进行混合声明。如:int n,a[10];

一维数组元素的引用:

定义了数组之后,才可以引用其中的元素。
C语言规定:只能引用数组中的元素,而不能利用数组名来整体引用一个数组。

对数组元素的引用形式数组名和方括号中的下标组成,即:数组名[下标]。

下标:数组元素在数组中的顺序号,用于区分每个数组元素,指明要操作哪个数组元素,整型的任何表达式都可以作为数组下标出现。
下标的范围为:从0到元素个数-1。
程序中,数组的各个元素和普通变量一样,可以参与各种C语言操作,如:被赋值、参与计算、输入输出等。
根据数组的有序性,对于数组元素的处理,往往使用循环来实现,尤其是计数循环for语句更适合于实现对数组的操作:将循环控制变量作为数组下标依次对数组元素进行存取。

一维数组的初始化:

C语言允许在定义数组时为数组赋初值,称之为数组的初始化。

一维数组初始化的形式:

类型标识符 数组名[元素个数] = {初值列表};

说明:

  • 初值列表是一个用逗号分隔开的数组元素初值表,这些值都是常量的形式。
  • 初值表中常量的类型必须与类型说明符一致。
  • 初始化的顺序为:按照初值表中值的顺序依次存入数组的各个元素中。

对一维数组进行初始化有以下几种方法:

  • 在定义数组时,对数组中的全部元素赋初值。
  • 在定义数组时,对部分数组元素赋初值。
  • 对全部数组元素赋初值时,可省略数组长度,系统自动确定。

通常情况下,未初始化的数组只是在内存中分配了指定大小的存储空间,但每个存储空间中的初值是不可知的。
未初始化的数组,初值是没有意义的值。
如果指定的初值元素个数比数组元素个数少,剩下的全部被赋为0。
数组可以初始化,也可以用赋值语句或输入语句为数组元素指定初值。两者的区别是:初始化是在编译阶段完成的,而赋值语句和输入语句都是在运行时完成的。

转载于:https://www.cnblogs.com/zhenzhen123/p/5001924.html

【C语言】-一维数组相关推荐

  1. c语言用一维数组求字符串,c语言一维数组练习题.doc

    c语言一维数组练习题 精品文档2016全新精品资料-全新公文范文-全程指导写作 –独家原创 PAGE1 / NUMPAGES1 c语言一维数组练习题 4.1内容概述 本章主要介绍了数值数组和字符数组的 ...

  2. C语言一维数组、二维数组、结构体的初始化

    C语言数组的初始化表示方法 一.C语言一维数组初始化: (1)在定义数组时对数组元素赋以初值.如: static int a[10]={0,1,2,3,4,5,6,7,8,9}; 经过上面的定义和初始 ...

  3. c语言一维数组课件,第9章:c语言一维数组课件

    第9章:c语言一维数组课件 随着竞争日益激烈,酒店嘴中的肥肉被大肆抢夺,各大酒店在这场竞争中几乎"溃不成军":就娱乐来讲,大城市里的娱乐场所遍地开花,酒店娱乐业的收入也是日益萎缩. ...

  4. c语言向自定数组_C语言一维数组的定义和引用

    C语言一维数组的定义和引用 C语言支持一维数组和多维数组.如果一个数组的所有元素都不是数组,那么该数组称为一维数组. 一维数组的定义方式 在C语言中使用数组必须先进行定义.一维数组的定义方式为: 类型 ...

  5. C语言 | 一维数组

    C语言一维数组的定义 一般形式 类型符 数组名[常量表达式] C语言使用一维数组注意事项 数组名的命名规则和变量名相同,遵循标识符命名规则. 在定义数组时,需要指定数组中元素的个数,方括号中的常量表达 ...

  6. 一维数组c语言,c语言一维数组_C语言一维数组入门教程

    摘要 腾兴网为您分享:C语言一维数组入门教程,优衣库,小米手环,小米钱包,小度等软件知识,以及胎教宝典,一级建造师题库软件,康佳渠道,刷点卷,一加系统,音乐节拍器,liveuc视频会议,辽宁省政务服务 ...

  7. c语言一维数组如何存放,C语言一维数组教案

    <C语言一维数组教案>由会员分享,可在线阅读,更多相关<C语言一维数组教案(6页珍藏版)>请在人人文库网上搜索. 1.学 科:计算机科学与技术课 程:C语言程序设计课 题:一维 ...

  8. c语言中的一维数组的定义,C语言一维数组的定义和引用

    <C语言一维数组的定义和引用>由会员分享,可在线阅读,更多相关<C语言一维数组的定义和引用(5页珍藏版)>请在人人文库网上搜索. 1.C语言一维数组的定义和引用在程序设计中,为 ...

  9. c语言一维数组转化为二维矩阵,js将一维数组转化为二维数组

    遇到的问题: 后端返回的是一组一维数组,但是需要展示的格式是二维数组,常见的场景举例:后台返回10个长度的数组,需要分成3个一组展示在banner上. 例:[1,2,3,4,5,6,7,8,9,10] ...

  10. c语言用一维数组存储数据,C语言一维数组入门教程

    本文章来简单的介绍入门级的c语言入门教程,下面我来介绍C语言一维数组的使用方法,包括有一维数组,数组的引,数组的遍历用,数组的初始化等. 一.一维数组 1.定义一个一维数组: (1)格式:存储类别   ...

最新文章

  1. CodeForces - 557E(trie
  2. 关于驰骋表单引擎中字段扩展设置对文本框Pop窗体返回值的升级说明 2012/11/13...
  3. C#多线程编程实例 线程与窗体交互
  4. c/c++ 实参、形参、值传递、地址传递的区别与关系 ---- 授人以鱼不如授人以渔
  5. App Store 审核指南
  6. 系统、驱动相关软件下载
  7. C盘中哪些文件可以删除?
  8. 【寒假每日一题2022】acw1934. 贝茜放慢脚步【二路归并】
  9. linux系统1060的显卡驱动打不上,ubuntu14.04+GTX1060 重新安装显卡驱动
  10. 【c++中内存拷贝函数(C++ memcpy)详解】
  11. red hat enterprise linux yum,Red Hat Enterprise Linux7.x(RHEL7.x)更换CentOS YUM源
  12. eayui input的坑坑洼洼
  13. 知名硅谷黑客当街被刺身亡!年仅43岁,马斯克都怒了
  14. Commonly Used Afx Functions
  15. 淘宝店铺后台接入阿奇索第三方平台订单推送功能,详细步骤和注意事项
  16. U盘文件格式及数据丢失的解决方法是那些
  17. 什么是线下门店陈列洞察?百度AI人工智能
  18. 天拓分享 | 西门子伺服电机的使用过程中这些事项要注意
  19. CoreDNS:Kubernetes内部域名解析原理、弊端及优化方式
  20. BUUCTF Misc wp大合集(3)

热门文章

  1. KeepAlived+Nginx 模拟nginx单点故障转移,实现高可用
  2. SpringBoot Starter自动装配的原理
  3. 【渝粤教育】国家开放大学2018年秋季 0269-21T文学概论 参考试题
  4. [渝粤教育] 西南科技大学 现代汉语 在线考试复习资料
  5. 【渝粤题库】国家开放大学2021春2779植物病虫害防治基础题目
  6. Baxter实战 (四)ubuntu14.04安装kinect V2
  7. CMake快速入门教程-实战
  8. zuul压力测试与调优
  9. 【BZOJ2816】【洛谷】【ZJOI2012】—网络(LCT)
  10. JAVA-初步认识-第七章-this关键字内存图解