构造类型--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. C++学习笔记——STL(标准模板库)

    1.首先.需要学习C++ 模板的概念 2.C++ STL(标准模板库)是一套功能强大的 C++ 模板类,提供了通用的模板类和函数,这些模板类和函数可以实现多种流行和常用的算法和数据结构,如向量.链表. ...

  2. 201521123078《Java程序设计》第七周学习总结

    1. 本周学习总结 2. 书面作业 1.ArrayList代码分析 1.1 解释ArrayList的contains源代码 public boolean contains(Object o) { re ...

  3. 201521123057 《Java程序设计》第5周学习总结

    1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 2. 书面作业 1.代码阅读:Child压缩包内源代码 1.1 com.parent包中Child.java文件能否编译通过? ...

  4. 201521123008《Java程序设计》第五周实验总结

    1.本章学习总结 2.书面作业 1.代码阅读:Child压缩包内源代码 1.1 com.parent包中Child.java文件能否编译通过?哪句会出现错误?试改正该错误.并分析输出结果. 不能.Sy ...

  5. 201521123056 《Java程序设计》第3周学习总结

    1. 本周学习总结 -本周学习了面向对象,学会了如何用Eclipse自动生成setter/getter/toString以及构造有参函数等 2. 书面作业 1.代码阅读 public class Te ...

  6. 201521123050《Java程序设计》第2周学习总结

    本周学习总结 (1)掌握各种数据类型的使用 基本类型 整数类型(byte,short,int,long,char) 浮点类型(float,double) boolean类型(true, false) ...

  7. 201521123105《jave程序》第二周学习总结

    1. 本周学习总结 学习了各种java数据类型以及各种运算符的使用 学习了一维,二维数组的用法 学习了String类对象使用 2. 书面作业 使用Eclipse关联jdk源代码,并查看String对象 ...

  8. 201521123022 《Java程序设计》 第一周学习总结

    1. 本章学习总结 通过这一周的学习,初次接触了Java,了解了Java与之前所用的C语言的不同之处,对JRE,JDK,JVM有了相应的基础了解.在安装了eclipse和JDK之后熟悉了一下eclip ...

  9. 201521123088 《Java程序设计》第14周学习总结

    1. 本周学习总结 2. 书面作业 1. MySQL数据库基本操作建立数据库,将自己的姓名.学号作为一条记录插入.(截图,需出现自己的学号.姓名)在自己建立的数据库上执行常见SQL语句(截图) 2. ...

  10. 在控制台显示“Hello World”

    //作者:江骆 //功能:在控制台显示"Hello World" //日期:2017.7.19 public class helloworld   //public 表示公共类,一 ...