C++拾遗(三)关于复合类型

数组相关

初始化只能在定义的时候使用,不能把数组赋给另一个数组。

初始化可以提供比元素数目少的初值,其它元素将被置为0。

字符char数组只有在以\0结尾时才是一个字符串。sizeof()返回数组的长度,strlen()返回可见字符的长度(不包括\0)。

cin>>使用空白来界定字符串(空格,换行,制表符等)。而cin.getline();能读取一行字符串,在读到指定字符串数目或者换行符的时候停止。

结构体相关struct

结构体可赋值。

结构体数组的初始化和使用与数组一致。

共用体union

能存储不同格式的数据,但同一时间内只能存储其中的一种。

枚举enum

定义了一组符号常量,默认从0开始赋给枚举量整数值,枚举类型能自动提升为int,但是int不能自动转换为枚举类型。(另一种情况:int值是有效的,可以使用强制转换为枚举。)

枚举定义的取值范围:

最大值:找到大于最大枚举量的最小的2的幂再减去1。

最小值:若枚举量最小值大于0,则最小值为0;否则采用和最大值一样的方法,但是符号取 - 。

时间: 2024-10-06 11:35:33

C++拾遗(三)关于复合类型的相关文章

oracle 三种复合类型变量分析

实际项目中,经常遇到的三种复合类型变量.结合部分项目实例做个整理,具体如下: 记录类型:记录类型可以包含一个或多个成员,而每个成员的类型可以不同,成员可以是标量类型.也可以引用其他的变量类型.这种类型的特点是比较适合处理查询语句中有多个列的情况,最常用的情况就如在调用某一张表中的一行记录. 索引表类型(关联数组):索引表类型和数组相似,他利用键值查找对应的值,这里的键值同真正数组的下标不同,索引表中下标允许使用字符串.数组的长度不是固定值,可以根据需要自动增长.其中的键值是整数或是字符串,其中的

第四章 复合类型

第四章  复合类型 4.1  数组 4.1.1  数组简介 数组(array)是一种数据格式,能够存储多个同类型的值. 声明数组的通用格式如下: typeName arrayName[arraySize]; 表达式arraySize指定数组的元素数目,它只能是以下三种情况之一: 1)        整型常数(如10,枚举值也可以): 2)        const值 3)        常量表达式(如8 * sizeof(int)) 注意:使用数组要注意下标的正确.编译器不会检查使用的下标是否有

Welcome to Swift (苹果官方Swift文档初译与注解二十一)---140~147页(第三章--集合类型)

第三章 Collection Types (集合类型) 在Swift中,提供了两种集合类型用来存储一组值:数组和字典.数组有序的存储相同类型的值;字典存储无序的相同类型的值.字典可以通过唯一的标识(就是所说的键)来查询和访问. 在Swift中,数组和字典总是要清晰的标明他们存储数据的类型.这就意味着不可以将错误的类型插入到数组或字典中.同时也意味着你是明确了解你要遍历的数组或字典里面数据的类 型.在Swift中,集合要显式的声明类型来保证在开发中都会明确的知道它能处理的数据类型. 注意点: 在S

Go语言学习笔记(4)复合类型

  Go语言的复合类型,包括数组.切片和映射等. 值.指针和引用类型 通常情况下Go语言中的变量持有相应的值.也就是说,我们可以将一个变量想象成它所持有的值来使用.其中有些例外,通道.函数.方法.映射.切片是 引用变量,它们持有的都是引用,也即保存指针的变量.值在传递给函数或者方法的时候会被复制一次,对于布尔类型和数值类型来说这非常廉价,但是对于大型变 量代价却非常大.而且复制传参的方式,修改值只是修改了副本,这能保证原始变量不被修改,但也一定程度上增加了修改原始值的麻烦.幸好在Go语言中有指

c++primerplus(第六版)编程题——第4章(复合类型)

声明:作者为了调试方便,每一章的程序写在一个工程文件中,每一道编程练习题新建一个独立文件,在主函数中调用,我建议同我一样的初学者可以采用这种方式,调试起来会比较方便. (具体方式参见第3章模板) 1.编写一个程序,如下述输出示例所示的那样请求显示信息:(注意:该程序应该接受的名字包含多个单词,另外,程序将向下调整成绩,即向上调一个字母.假设用户请求A.B 或C,所以不用担心D和F之间的空档.) #include <iostream> #include <string> #inclu

c++学习笔记--复合类型,const。

复习c++,有必要对一些东西做一下笔记,方便以后学习,如有问题,欢迎提出. 首先,最常用两种复合类型应该是引用和指针. 所谓复合类型,是在基本类型基础(如:int)上定义的类型. 引用是c++的一个复合类型,首先,它和指针不同的是它并不是一个对象,仅仅只是另一个对象的别名.而且,引用绑定的东西必须是一个对象,引用不是,所以定义引用的引用是 不合法的.也不能定义字面量的引用.同时,普通引用的绑定对象与引用定义类型必须相同. 如: int &a=10;//错误的,必能定义字面量 double b =

【共读Primer】10.&lt;2.3&gt; 复合类型 Page45

C++的复合类型 引用和指针 引用就像是类型的别名 int ival = 1024; int &refVal = ival; // int &refVal2 ; // 报错:引用必须被初始化 int &refVal1 = ival, &refVal2 = ival, &refVal3 = refVal1, Val4=ival; // refVal1/refVal2/refVal3都是引用,其中refVal3用另一个引用进行初始化 // Val4是一个int它并不是引

oracle PL\SQL块和复合类型

2018-12-04 PL\SQL程序块由三个部分组成:声明部分.执行部分.异常处理部分. 其结构如下: declare /*声明部分:说明要用到得变量,类型及游标,以及局部存储过程和函数*/ /*变量的定义和系统保留字要区分开(sql server 中可用@ PL\SQL不能用@)*/ begin /*执行部分:过程及SQL语句*/ /*必须有*/ exception /*异常处理部分:错误处理*/ end; PL/SQL中除了一些常见的变量类型外,还有复合类型 复合类型分为记录和表 记录:由

复合类型

复合类型(compound type)是指基于其他类型定义的类型,C++语言有几种复合类型,这里只介绍两种:引用和指针 一:引用 引用(reference)为对象起了另外一个名字,引用类型引用另外一种类型,通过将声明符写成&d的形式来定义引用类型,其中d是声明的变量名. int ival = 1024 int &refval = ival://refval指向ival(是ival的另外一个名字) int &refval2:  //报错,引用必须初始化 一般在初始化变量的时候,初始值

Redis 三:存储类型之字符串

1.赋值单个: set a 100 [赋值多个:mset a 100 b 200 c 300] 2.取值单个: get a [取值多个:mget a b c] 3.数字递增 incr a 在a的基础上+1,那就是返回101 如果预先的值为0,那么返回1,如果预先的值不是整形,则返回错误“is not an integer...” 3.1 数字递减 decr 用法跟上面一样 decr 4.约定(命名方式) 对象类型:对象ID:对象属性 user:100:friends 存储用户id为100的好友列