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!= ...
随机推荐
- JAVA基础第二组(5道题)
6.[程序6] 题目:输入两个正整数m和n,求其最大公约数和最小公倍数. 1.程序分析:利用辗除法. package com.niit.homework1; import java.ut ...
- 201521123072《java程序设计》第四次总结
1. 本周学习总结 1.1 尝试使用思维导图总结有关继承的知识点. 1.11.2 使用常规方法总结其他上课内容 一些小的方法归纳: 通过 instanceof 可以判断父类引用所引用的对象实例的实际类 ...
- 201521123056 《Java程序设计》第4周学习总结
1. 本周学习总结 1.1 尝试使用思维导图总结有关继承的知识点. 1.2 使用常规方法总结其他上课内容. 1.1 instanceof 测试一个对象是否是某个类的实例,即使左边是右边类的子类的实例对 ...
- 《JAVA程序设计》第12周学习总结
1. 本章学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. InputStream和OutputStream为所有字节流的父类 通过操作流中的字节可处理各种不同类型的数据 ...
- java课程设计 猜数游戏 个人
1.团队课程设计博客链接 /http://www.cnblogs.com/ohanna/p/7064305.html 2.个人负责模块说明 1.进入界面: 2.成功玩家信息的录入: 3.信息的读出 3 ...
- 201521123029《Java程序设计》第十二周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 书面作业 将Student对象(属性:int id, String name,int age,doubl ...
- [01] File类
1.IO概念 File类是java.io包中一个很重要的类,这里的io,就是指 Input/Output,所以在看File类之前,先提一下所谓的IO概念. I/O(Input/Output),即输入/ ...
- IDEA运行编译后配置文件无法找到,或配置文件修改后无效的问题
1.触发事件 今天正好在学习log4j,为了测试其配置文件log4j.properties中的各种配置,进行了频繁修改和程序启动以确认效果,因为是使用的IDEA建立的Web项目,接着问题就来了,配置文 ...
- Java实现MD5加密_字符串加密_文件加密
Java实现MD5加密,具体代码如下: package com.bstek.tools; import java.io.FileInputStream; import java.io.IOExcept ...
- markdown编辑器的学习
markdown编辑器的学习 1 标题 一级标题 二级标题 三级标题 四级标题 五级标题 六级标题 2列表 无序列表 1 2 3 4 有序列表 1 2 3 4 3引用 这里是引用,哈哈我也不知道到我引 ...