c语言构造类型之数组_01
构造类型--constructed type。至于定义,笔者就省略了,有兴趣的同学可以百度搜索https://www.baidu.com/。今天我们要说的是c语言中最简单的构造类型--数组(array)。
数组用于保存和处理一组具有相同类型的数据,形成一个逻辑组合并通过统一的名字进行访问,你会发现寻找或引用数组中的元素只是方括号中的数值,也称为索引(index)不同。
数组里的每项数据称为数组的元素,每一个元素在内存中是相邻依序存储,也就是数据存放一个紧接着一个,没有断开。每一个元素的访问通过相同的数组名称并使用一个位置序号来定位,表示这是数组里的第几个元素。
注意啦!在c语言里,数组元素的表示形式是数组名加一个方括号(中括号),括号里面的是元素的位置。除此,数组括号中的下标是从0开始的。其目的是想提高访问单独元素的速度,如果开始的下标为0,编译器就不需要做更多的计算就能直接确定访问后续元素所使用的内部偏移量,这个了解下便可。下面,让我们来进一步了解数组。
1、一维数组(one dimensional array)
声明格式: 类型名 数组名[数组元素个数]
其中,类型名表示数组所存储元素的数据类型,比如说整型int,浮点型float等。数组名可以自己取,但是要注意的是:起数组名的时候最好还是根据你所做的工程起一些有含义的名称,如此一来不会容易搞混,程序也会更加规范。还有一个值得注意的点是,数组中若指定元素数目,那么在[]中的只能是整型数据或者是整数表达式,比如说[10]、[5+5]或者其他形式.
示例: int names[10]; 解析:int表示数组中的元素都是整型数据,名称为names,数组当中总共有10个元素,这就意味着索引从0-9共10个元素,结尾记得加分号;,这是一个句子结束的标志,不可粗心将之忘却。至于这个数组占用的存储空间大小,得看你的计算机分配给每一种数据类型多少存储空间,这里的话,假如你的计算机分配给int型数据的空间是4个字节(bytes),那么这个数组所占用的存储空间大小就是4*10(bytes),也就是40个字节(一个字节为8位(bit))。
数组元素的初始化:
(1)数字的初始化
int number[3] = {1, 2, 3}; #注意,用于初始化的值用花括号包起来
这里,也可以省略声明部分中数组元素的个数,即: int number[] = {1, 2, 3};
此时,编译器会根据初始化的元素个数自动确定数组的大小
我们也可以先进行定义,然后在函数中再进行初始化,例如你想通过用户输入数据,然后存储到数组当中,就可以采取这种方法。
(2)字符(character)及字符串(character string)的初始化
char code[] = {'a', 'b', 'c'}; #字符的数据类型为char,所以此处类型名就为char,当然,写int也是可以的,因为int数据类型所占用的存储空间要比char大,分配给int类型数据的空间大小自然够装得下char类型数据,元素个数同上所述,可写可不写,写的话得同初始化元素个数相同,否则编译会报错,字符的话需要用’ ‘包起来,像这些字母,和一些符号都是需要这样处理的
除此,还可以使用字符串直接进行初始化,例如:
char code[] = "abc"; #但是要注意的是,用双引号括起来的字符串常量,在字符串末尾还隐含了作为字符串结束的标志--'\0',在内存中,这个符号也是一个char数据类型,需要一个字符的存储空间
其实等价于char code[] = {'a', 'b', 'c', '\0'};
另外,还有一种初始化方法,那就是先定义,然后在函数当中进行初始化赋值,这点上文也有略微提及。
这次的笔记我们就做到这里吧,鉴于笔者的水平有限,也正在学习当中,文中有什么遗漏或者错误的地方敬请提示,笔者会进行改进,由衷感谢!
c语言构造类型之数组_01的更多相关文章
- C语言学习004:数组与指针
在C语言中,字符串实际上就是字符数组,在内存中字符串"Shatner"存储的形式是这样的
- C语言中的数组的一些笔记
C语言是面向过程的语言. 计算数组长度: Int count =sizeof(ages)/sizeof(int); C语言里面输出字符串,必须以'\0'结束,如果没有则一直执行下去. Char nam ...
- c语言二维数组传递
c语言二维数组传递,目前我总结三种方法,以及纠正一个不能使用的方法 /********************************* * 方法1: 第一维的长度可以不指定 * * 但必须指定第二维 ...
- R语言基础:数组&列表&向量&矩阵&因子&数据框
R语言基础:数组和列表 数组(array) 一维数据是向量,二维数据是矩阵,数组是向量和矩阵的直接推广,是由三维或三维以上的数据构成的. 数组函数是array(),语法是:array(dadta, d ...
- Java之--Java语言基础组成—数组
Java语言基础组成-数组 Java语言由8个模块构成,分别为:关键字.标识符(包名.类名.接口名.常量名.变量名等).注释.常量和变量.运算符.语句.函数.数组. 本片主要介绍Java中的数组,数组 ...
- C语言指针和数组知识总结(上)
C语言指针和数组知识总结(上) 一.指针的基础 1.C语言中,变量的值能够通过指针来改变,打印指针的语句符号可以是: %08x 2.指针的本质 指针的本质就是变量,那么既然是变量,那么一定会分配地址 ...
- go语言中的数组切片:特立独行的可变数组
go语言中的数组切片:特立独行的可变数组 初看go语言中的slice,觉得是可变数组的一种很不错的实现,直接在语言语法的层面支持,操作方面比起java中的ArrayList方便了许多.但是在使用了一段 ...
- Go语言基础之数组
Go语言基础之数组 本文主要介绍数组(array)及它的基本使用. Array(数组) 数组是同一种数据类型元素的集合. 在Go语言中,数组从声明时就确定,使用时可以修改数组成员,但是数组大小不可变化 ...
- 第二十四节:Java语言基础-讲解数组的综合应用
数组的综合应用 // 打印数组 public static void printArray(int[] arr) { for(int x=0;x<arr.length;x++) { if(x!= ...
随机推荐
- 团队作业4——第一次项目冲刺 tHe LaSt dAy
项目冲刺--终点 敏捷冲刺最后一天,没想到前一天就上榜了,我也很无奈啊. 那今天就老老实实写一篇博客好了. Mission 这次敏捷冲刺呢,我们主要做了前端页面,后台的数据库和添加了基本的增删查改的功 ...
- 结对实验---基于GUI的四则运算
详细代码:https://git.coding.net/wangluo24/NO.2.git 结对伙伴:吕志哲(201421123021) &本人.许明涛 201421123024 一.题目要 ...
- 【Alpha】Daily Scrum Meeting——Day4
站立式会议照片 1.本次会议为第四次Meeting会议: 2.本次会议在大课间09:40,在图书馆一楼楼道召开,本次会议为30分钟讨论昨天的任务完成情况以及接下来的任务安排. 燃尽图 每个人的工作分配 ...
- 201521123027 <java程序设计>第十二周作业总结
1.本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2.书面作业 将Student对象(属性:int id, String name,int age,double ...
- cxgrid学习
delphi cxgrid控件哪个属性是设置不能编辑? cxgrid控件cxgridDBTable的OptionsData可以选择操作 cxGrid1DBTableView1下选择cxGrid1DBT ...
- 搭建连接MySql的三层架构的ASP.NetCore2.0的WebApi
里我们用三层架构搭建一个连接MySql的ASP.netCore模板的WebApi项目 首先添加WebApi项目(ASP.NetCore版本) 右键解决方案>新建项目> 选择Web>A ...
- 一条语句导致CPU持续100%
一大早收到一堆CPU预警邮件,通常每天只在统计作业执行期间会收到2~3封CPU预警邮件.这次的预警来自另一台服务器,并且明细数据显示其CPU一直维持在49%.登录到服务器,查看任务管理器(查看资源监视 ...
- MyBatis框架(二)
导包, 配置mybatis的总配置文件: mybatis-config.xml, <?xml version="1.0" encoding="UTF-8" ...
- Go语言基础知识
Go语言的一般结构:basic_structure.go Go程序是通过package来组织的,只能同过package名称为main的包可以包含main函数(一个可执行程序只能有一个main包) 通过 ...
- Jquery一些常用的方法
整理以前的笔记,在学习JavaScript时候,经常会用到一些方法,但是有时忘掉了具体用法,因此记下.方便以后查阅. 这篇博文先说明这些方法的用途: removeClass().remove().cs ...