构造类型--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的更多相关文章

  1. C语言学习004:数组与指针

    在C语言中,字符串实际上就是字符数组,在内存中字符串"Shatner"存储的形式是这样的

  2. C语言中的数组的一些笔记

    C语言是面向过程的语言. 计算数组长度: Int count =sizeof(ages)/sizeof(int); C语言里面输出字符串,必须以'\0'结束,如果没有则一直执行下去. Char nam ...

  3. c语言二维数组传递

    c语言二维数组传递,目前我总结三种方法,以及纠正一个不能使用的方法 /********************************* * 方法1: 第一维的长度可以不指定 * * 但必须指定第二维 ...

  4. R语言基础:数组&列表&向量&矩阵&因子&数据框

    R语言基础:数组和列表 数组(array) 一维数据是向量,二维数据是矩阵,数组是向量和矩阵的直接推广,是由三维或三维以上的数据构成的. 数组函数是array(),语法是:array(dadta, d ...

  5. Java之--Java语言基础组成—数组

    Java语言基础组成-数组 Java语言由8个模块构成,分别为:关键字.标识符(包名.类名.接口名.常量名.变量名等).注释.常量和变量.运算符.语句.函数.数组. 本片主要介绍Java中的数组,数组 ...

  6. C语言指针和数组知识总结(上)

    C语言指针和数组知识总结(上) 一.指针的基础 1.C语言中,变量的值能够通过指针来改变,打印指针的语句符号可以是:  %08x 2.指针的本质 指针的本质就是变量,那么既然是变量,那么一定会分配地址 ...

  7. go语言中的数组切片:特立独行的可变数组

    go语言中的数组切片:特立独行的可变数组 初看go语言中的slice,觉得是可变数组的一种很不错的实现,直接在语言语法的层面支持,操作方面比起java中的ArrayList方便了许多.但是在使用了一段 ...

  8. Go语言基础之数组

    Go语言基础之数组 本文主要介绍数组(array)及它的基本使用. Array(数组) 数组是同一种数据类型元素的集合. 在Go语言中,数组从声明时就确定,使用时可以修改数组成员,但是数组大小不可变化 ...

  9. 第二十四节:Java语言基础-讲解数组的综合应用

    数组的综合应用 // 打印数组 public static void printArray(int[] arr) { for(int x=0;x<arr.length;x++) { if(x!= ...

随机推荐

  1. 201521123011 《Java程序设计》 第三周学习总结

    1. 本周学习总结 2. 书面作业 1.代码阅读 public class Test1 { private int i = 1;//这行不能修改 private static int j = 2; p ...

  2. java课程设计——算术运算测试个人博客

    1.团队课程设计链接 团队博客:http://www.cnblogs.com/yytx/p/7064790.html 2.个人负责模块 有关排行榜的界面设计和代码编写 3.自己的代码提交记录截图 4. ...

  3. PHOTOSHOP常用快捷键大全

    PHOTOSHOP常用快捷键大全一.文件新建 CTRL+N打开 CTRL+O 打开为 ALT+CTRL+O关闭 CTRL+W保存 CTRL+S 另存为 CTRL+SHIFT+S另存为网页格式 CTRL ...

  4. es6中对象的类与继承方法

    对于对象,我一直搞不清楚到底是该如何去继承,如何去书写.在熟练es6之后,终于会尝试写出来了. 代码如下: //我们假定父类为person,子类为man class person{ construct ...

  5. 多线程面试题系列(8):经典线程同步 信号量Semaphore

    前面介绍了关键段CS.事件Event.互斥量Mutex在经典线程同步问题中的使用.本篇介绍用信号量Semaphore来解决这个问题. 首先也来看看如何使用信号量,信号量Semaphore常用有三个函数 ...

  6. SpringMVC基础入门,创建一个HelloWorld程序

    ref:http://www.admin10000.com/document/6436.html 一.SpringMVC基础入门,创建一个HelloWorld程序 1.首先,导入SpringMVC需要 ...

  7. 【转】独立游戏如何对接STEAM SDK

    独立开发者在对接STEAM SDK之前 首先得先登上青睐之光,也就是我们俗称的"绿光" 一般要先对接G胖家的SDK,然后提交版本,最后等待审核... 我本身是unity 开发,对C ...

  8. Java钉钉开发_01_开发前的准备

    源码已上传GitHub:传送门 一.准备事项 1.1  一个能在公网上访问的项目: 参见:Java微信开发_02_本地服务器映射外网 1.2  一个钉钉账号 去注册 1.3 创建一个应用 登录钉钉后台 ...

  9. ThinkPHP控制器输出防止乱码小技巧

    在控制器中加一句:试试看 header('content-type:text/html;charset=utf-8');

  10. 用python的TK模块实现猜成语游戏(附源码)

    说明:本游戏使用到的python模块有tkinter,random,hashlib:整个游戏分为四个窗口,一个进入游戏的窗口.一个选关窗口.一个游戏进行窗口和一个游戏结束的窗口. 源码有两个主要的py ...