美文网首页谈天说地
第四章 复合类型(1)数组

第四章 复合类型(1)数组

作者: 阿厉a_li | 来源:发表于2019-10-26 22:03 被阅读0次

       影响最为深远的复合类型是,它将是学习c++的难点。然而,C++还支持几种更普通的复合类型 ,它们都来自C语言。例如,数组可以存储多个同类型的值。一种特殊的数组(字符数组)可以存储字符串(一系列字符)。结构可以存储多个不同类型的值。而指针则是一种将数据所处位置告诉计算机的变量,指针也是分类型的,与所指向位置的数据类型一致。本章将介绍所有这些复合类型(类除外),还将介绍 new和delete 及如何使用它们来管理数据。另外,还将简要地介绍string类,它提供了另一种处理字符串的途径。

(一)数组

1. 数组的创建

(1)要创建数组,可使用声明语句。声明数组,比如:short months [l2] ; //creates array of 12 shorts;创建了有12个short元素的数组。数组的意义在于创建多个存储同种类型数据的变量,这些变量通过下标来区分,因此可以使用for循环等来进行方便的批量自动处理。

数组声明应指出以下三点:

• 存储在每个元素中的值的类型

数组名

•数组中的元素数

(2)typeName arrayName [arraySize] ;arraySize不能是变量,必须是常量(可以是整型常量,常量表达式,还可以是const常量),但可以用new来避开这种限制(程序运行时用new创建一个数组)。数组下标或索引从零开始,最后一个元素的索引比数组长度小1,比如arrayName[arraySize-1]是上面数组的最后一个元素。编译器不会检查使用的下标是否有效。例如,如果将一个值赋给不存在的元素,编译器并不会指出错误。但是程序运行后,这种赋值可能引发问题,它可能破坏数据或代码,也可能导致程序异常终止。所以必须确保程序只使用有效的下标值

(3)int yamcosts [3] = {20, 30, 5};使用初始化列表赋值,为初始化赋值,初始化列表只有在定义的时候才能使用。初始化列表可以省略等于号。

(4)sizeof运算符返回类型或数据对象的长度(单位为字节)。注意,如果将sizeof运算符用于数组名,得到的将是整个数组中的字节数。但如果将sizeof用于数组元素,则得到的将是元素的长度(单位为字节)。

2.数组的初始化规则

(1)只有在定义数组时才能使用初始化,此后就不能使用了,也不能将一个数组赋给另一个数组;

(2)如果只对数组的一部分进行初始化,则编译器将把其他元素设置为0。因此,将数组中所有的元素都初始化为0,非常简单,只要显式地将第一个元素初始化为0, 然后让编译器将其他元素都初始化为 0即可;比如long totals [500] = {0} ;

(3)如果初始化数组方括号内为空,C++编译器将计算元素个数。例如,对于下面的声明:short things[ ]={15 , 3,5, 8};会自动将数组的长度设置为4个。

(4)首先,初始化数组时,可省略等号(=):如double earnings [4] {1.2e4 , l.6e4 , l.le4 , l.7e4 };其次,不在大括号内包含任何东西,这将把所有元素都设置为零:unsigned int counts [l0] = {}; // all elements set to 0。第三,列表初始化禁止缩窄转换,即不可以将浮点型转化为整型,不可以将long转化为int等。

数组就是排成排的同种元素

上一篇:数据处理(4)C++算术运算符

下一篇:复合类型(2)字符串

相关文章

  • Golang笔记(一):数组与切片

    数组 创建方式:以创建 int 类型数组为例 复合型数组:复合型数组可以省略类型化标签 多维数组注意: 1. 多...

  • 重读经典系列之《C++PrimerPlus》第4章

    第四章 复合类型 声明数组的通用格式如下:typeName arrayName[arraysize];表达式arr...

  • Cpp:数组

    现在开始学习第四章“数组和指针”。C++语言提供了两种类似于vector和迭代器类型的低级复合类型——数组和指针。...

  • 第四章 复合类型(1)数组

    影响最为深远的复合类型是类,它将是学习c++的难点。然而,C++还支持几种更普通的复合类型 ,它们都来自C语言。例...

  • Go复合数据类型

    复合数据类型:是以不同的方式组合基本类型可以构造出来的复合数据类型,在Golang中复合数据类型有数组、slice...

  • Go核心语言编程 - 复合数据类型(3)

    Go对应的复合数据类型有数组,字典,指针,切片,通道,结构和结构,他们字面类型如下: • 指针 • 数组• 数组初...

  • Go基础编程---复合类型

    复合类型分类 指针 指针默认值为 nil 数组(同一个类型的集合)长度在定义后无法更改。数组是值类型 数组的定义 ...

  • Go语言基础03——复合类型

    复合类型的分类 指针、数组、切片slice、字典map、结构体struct 指针 数组 数组是指一系列同一类型数据...

  • 4-1、rust语言学习记录

    持续更新 变量 数据类型 标量类型:整型、浮点型、布尔类型和字符类型,存放在栈 复合类型:元组,数组

  • JS对象&JSON&JS数组操作

    1、JSON格式的数据需要遵循什么规则? a、复合类型值只能是数组或对象,不能是函数、正则、日期等 b、简单类型只...

网友评论

    本文标题:第四章 复合类型(1)数组

    本文链接:https://www.haomeiwen.com/subject/hwzlvctx.html