c++ 哪些自定义的数据类型

如题所述

C++中有以下几种自定义数据类型方式:typedef、union、enum
typedef
typedef只是用于重命名一种已有的数据类型。
typedef char C; //C c即char c
typedef char field [50]; //field s即char[50]
注意第二种用法,数组的维数[50]是写在最后的。
union
union中的每个成员共享同一段内存(每个成员的起始内存位置都是一样的),整个union的大小取决于最长的成员的大小。
复制代码
union mix_t
{
long l;
struct
{
short hi;
short lo;
}s;
char c[4];
}mix;
复制代码
这个union的内存示意图如图下所示(注意32位机器上,char为1byte,short为2bytes,long为4bytes)
匿名union
非匿名union(union的名字为price)
复制代码
struct
{
char title[50];
char author[50];
union
{
float dollars;
int rmbs;
} price;
} book;
复制代码
匿名union(union没有名字)
复制代码
struct
{
char title[50];
char author[50];
union
{
float dollars;
int rmbs;
};
} book;
复制代码
那么这两种结构的不同就是元素的访问方式不同,假如我们要访问dollars这个元素,第一种是book.price.dollars,第二种是book.dollars。
enum
枚举类型,其中枚举值是常量,而不是变量。
enum days{Mon, Tue, Wed, Thur, Fri, Sat, Sun};
days today = Mon;
其中Mon其实是0,Tue是1,以此类推。
当然Mon不一定要从0开始,所以可以这样写……
enum days{Mon=1, Tue, Wed, Thur, Fri, Sat, Sun};
其中Mon是1,Tue是2,以此类推。
之前一直犯一个错误,直到今天(2015年4月11日)看objc的时候才发现,
enum days{Mon, Tue=2, Wed};  //0 2 3
cout << Mon << endl;  //输出0而不是1
温馨提示:内容为网友见解,仅供参考
无其他回答

c++ 哪些自定义的数据类型
C++中有以下几种自定义数据类型方式:typedef、union、enum typedef typedef只是用于重命名一种已有的数据类型。typedef char C; \/\/C c即char c typedef char field [50]; \/\/field s即char[50]注意第二种用法,数组的维数[50]是写在最后的。union union中的每个成员共享同一段内存(每个成员...

C++有几种数据类型
基本类型(Base Types): 这些是C++中预定义的最基本的数据类型,包括字符型(char)、整型(int)、浮点型(float)、双精度浮点型(double)以及布尔型(bool)。复合类型(Compound Types): 这些类型是由基本类型通过一些操作生成的。例如,数组(Array)、结构体(Struct)、联合体(Union)等。指针...

C++中的自定义数据类型(结构体)解析
C++ 允许用户定义包含不同或相同数据类型的数据集合,这被称为结构体类型。声明结构体类型使用关键字 `struct`。结构体中的每个成员称为一个域,域表列则为结构体成员的列表。定义结构体类型变量有三种方法:首先声明结构体类型再定义变量名、在声明类型的同时定义变量或直接定义变量。直接定义变量的方式较...

结构体类型基本概述
C++为编程者提供了多种基础数据类型,如int、float、double和char等,但面对复杂多变的问题,这些类型往往无法满足需求。因此,C++允许用户自定义类型,如结构体(structure)、共用体(union)、枚举(enumeration)和类(class)等,统称为用户自定义类型(UDT)。结构体,类似其他高级语言中的记录,是通过组合不同...

c++的数据类型
C++中的数据类型分为基本类型和自定义类型。基本类型是C++编译系统内置的。 C++的基本数据类型如下表所示(下表中列出的各类型的长度和取值范围,是指以面向80x86处理器的 Viusal C++ 2012 和 gcc 4.8.1 的长度,其它的编译器并不一定是这个长度)。bool所支持的字节数是1b,取值范围是false、true;...

请问C语言中定义数据类型的有哪些词啊,应该在什么情况下用到?_百度...
C++ 定义了另外两个基本数据类型: bool 和 wchar_t.类型 描述 bool 布尔类型, 值为true 或 false wchar_t 宽字符类型 类型修饰符 一些基本数据类型能够被 signed, unsigned, short, 和 long 修饰. 当类型修饰符单独使用的时候, 默认的类型是 int. 下表是所有可能出现的数据类型:bool char unsigne...

秋招C++八股--封装、继承、多态(持续更新)
C++中struct和class的区别 相同点:两者都可以用来定义用户自定义数据类型(UDT),都包含成员变量和成员函数。不同点:默认情况下,class成员为私有(private),而struct成员为公有(public)。class支持封装和数据隐藏,可通过访问修饰符指定成员的访问权限(公有、私有或保护),而struct默认公开其成员。c...

c++里有多少种类型
C++定义了七个基本类型 --- void:空类型 int :整型 标准32位 float:浮点型 标准32位 double:双精度型 标准64位 char:字符类型 标准8位 bool:布尔类型,有ture 和false两个值 标准8位 wchart_t:宽字符类型 标准16位 一些基本数据类型能够被 signed, unsigned, short, 和 long 修饰. 当类型...

C++有多少种基本数据类型?
C语言包含5个基本数据类型: void, int, float, double, 和 char.C++ 定义了另外两个基本数据类型: bool 和 wchar_t.一些基本数据类型能够被 signed, unsigned, short, 和 long 修饰 所以short,long等等都不算基本数据类型。这是书上说的,所以是7种基本数据类型.空值型是一种,但枚举型不算。

c++ 什么是类类型
类类型是由字段数据(成员变量)和操作字段数据的成员(属性、方法、构造函数、事件等)所构成的自定义类型。其中字段数据表示类实例(对象)的状态。

相似回答