C++自定义数据类型学习笔记八
定义自己的数据类型,使用关键之typedef,形式为:
typedef existing_type new_type_name;
"existing_type是C++基本数据类型或者其他已经被定义了数据类型,
new_type_name是我们将要定义的新数据类型的名称。例如:
typedef char C;
typedef unsigned int WORD;
typedef char * string_t;
typedef char field [50];
使用上面定义好的类型,例子:
C achar, anotherchar, *ptchar1;
WORD myword;
string_t ptchar2;
field name;"
联合
"联合使得同一段内存可以被按照不同的数据类型来访问,数据实际是存储在同一个位置的。声明形式:
union model_name {
type1 element1;
type2 element2;
type3 element3;
type4 element4;
.
.
} object_name;
union 中的所有被声明的元素占据同一段内存空间,其大小取声明中最长的元素的大小。"
union 的用途之一是将一种较长的基本类型与由其它比较小的数据类型组成的结构或数组联合使用。例如:
"union mix_t {
long l;
struct {
short hi;
short lo;
} s;
char c[4];
} mix;
以上例子中定义了3个名称:mix.l, mix.s 和 mix.c,我们可以通过这3个名字来访问同一段4 bytes长的内存空间。至于使用哪一个名字来访问,取决于我们想使用什么数据类型,是long, short 还是 char 。"
匿名联合
如果我们将一个union包括在一个结构(structure)的定义中,并且不赋予它object名称 (就是跟在花括号{}后面的名字),这个union就是匿名的。
"例如:
struct {
char title[50];
char author[50];
union {
float dollars;
int yens;
};
} book;
访问方式:
book.dollars
book.yens"
枚举
枚举可以用来生成一些任意类型的数据,不只限于数字类型或者字符类型,甚至常量true和false。定义形式如下:
"enum model_name {
value1,
value2,
value3,
.
.
} object_name;"
"例子:
enum colors_t {black, blue, green, cyan, red, purple, yellow, white};"
枚举数据类型在编译时是被编译为整型数值的,而它的数值列表可以是任何指定的整型常量 。如果没有指定常量,枚举中第一个列出的可能值为0 ,后面的每一个值为前面一个值加1。
如果我们在定义枚举数据类型的时候明确指定某些可能值(例如第一个)的等价整数值,后面的数值将会在此基础上增加,例如:
enum months_t { january=1, february, march, april,
may, june, july, august,
september, october, november, december} y2k;
在这个例子中,枚举类型months_t的变量y2k 可以是12种可能取值中的任何一个,从january 到 december ,它们相当于数值1 到 12
分享到:
相关推荐
5. **结构体与联合体**:学习如何定义和使用自定义数据类型,理解结构体和联合体的区别。 6. **预处理器**:掌握宏定义、头文件包含和条件编译等预处理指令。 C++Builder则是基于C++的一种集成开发环境,它提供了...
这篇学习笔记将深入探讨STL的核心概念、主要组件以及其在实际编程中的应用。 首先,STL的核心概念是容器、迭代器、算法和函数对象。容器是STL提供的一系列数据结构,如vector(动态数组)、list(双向链表)、set...
- 数据类型兼容性:小数据类型赋值给大数据类型会自动转换,但可能丢失精度。 在C++编程中,理解这些基础知识是至关重要的,它们构成了编写有效、高效代码的基础。随着学习的深入,还将涉及到类、对象、模板、异常...
C++运算符重载学习笔记 C++类和对象是面向对象编程的基础概念。运算符重载是C++中的一种重要机制,允许开发者重新定义已有的运算符,赋予其新的功能,以适应不同的数据类型。在本文中,我们将详细介绍C++运算符重载...
《C++ Primer 第4版》是一本经典的C++编程...这份“C++ Primer 第4版”学习笔记包含了所有这些知识点的详细解释和示例,是深入学习C++的理想资料。通过学习和实践,你可以掌握C++编程的基础,并逐步提升到高级水平。
这份"C++培训课程详细学习笔记"是深入理解和掌握C++语言的重要资源,旨在帮助初学者及有经验的开发者巩固基础,提升技能。 一、C++基础 1. 变量与数据类型:C++支持基本数据类型(如int、float、char)以及构造数据...
- **数据类型之间的转换**:当从较小的数据类型向较大的数据类型赋值时,通常是安全的;反之可能会导致数据丢失。 - **运算符**:C++支持多种运算符,包括算术运算符、比较运算符、逻辑运算符等。 - **布尔运算**...
1. **基本数据类型**:C++中的基本数据类型包括整型(int、short、long、long long)、浮点型(float、double)、字符型(char)以及布尔型(bool)。理解每种类型的数据范围和用途是基础。 2. **变量声明与初始化*...
《C++学习笔记》是一部非常实用的资源,适合那些对C++编程语言有着浓厚兴趣或者正在学习C++的初学者。这份笔记详细介绍了C++语言的基础知识、核心概念以及高级特性,旨在帮助读者掌握C++编程的核心技能。 C++是...
这篇学习笔记主要涵盖了C++的基础知识,包括函数定义、头文件、注释、名称空间、常量、变量、进制转换、基本类型以及常用函数的使用。 1. **函数定义**: 函数是C++中组织代码的基本单元。`main()`是每个C++程序的...
"C++技能百练 C++学习笔记 C经典程序100练"这个资源针对初学者提供了丰富的实践机会,旨在帮助他们通过实例来深入理解C++的核心概念。以下是这份资料中可能涵盖的一些关键知识点: 1. **基础语法**:包括变量、数据...
C++是一门强大的编程语言,其包含了...以上就是C++ Primer学习笔记中涵盖的一些主要知识点。通过这些知识点的学习,可以帮助我们深入理解C++语言的核心概念和编程范式,从而编写出更加高效、安全和可维护的C++代码。
《C++ Primer Plus 学习笔记》是一份深入学习C++编程语言的宝贵资源,它涵盖了C++的基础语法以及标准模板库(STL)的使用。C++是一种强大的、通用的编程语言,由Bjarne Stroustrup在C语言的基础上发展而来,其设计...
### C++&C学习笔记知识点概览 #### 类与数据抽象 - **概念**:类是一种用户自定义的数据类型,它将数据(属性)和作用于数据上的操作(方法)封装在一起,从而实现了数据的抽象。 - **特点**:与C语言中的结构体...
- **变量与数据类型**:C++支持基本数据类型如整型(int)、浮点型(float, double)、字符型(char),以及自定义数据类型如结构体(struct)、联合体(union)和枚举(enumeration)。 - **运算符**:包括算术运算符、比较...
### C++ 提高编程学习笔记:泛型编程与 STL 技术详解 #### 一、泛型编程概述 泛型编程是一种编程范式,通过在程序设计中使用参数化的类型来编写代码,使得同一段代码可以处理多种不同的数据类型。这种编程方式极大...
1. 数据类型:C++支持基本数据类型(如int、float、char)以及自定义数据类型(如结构体、联合体)。此外,C++还引入了指针,它是一种特殊的变量,存储内存地址,可以用来间接访问其他变量。 2. 控制结构:包括条件...
【C++学习笔记源代码】是一份集合了多个学习阶段的C++编程实践资料,适合初学者和进阶者深入理解和掌握C++语言。这份压缩包包含了一系列的子文件,如uc1.zip、uc3.zip、day15.zip等,分别对应不同的学习单元或课程...