C++从入门到精通:1.1.2基础语法之数据类型

简介: C++从入门到精通:1.1.2基础语法之数据类型

在C++编程中,数据类型是一个核心概念,它决定了如何在内存中存储数据以及可以对这些数据执行哪些操作。理解数据类型是编写高效、可靠C++代码的基础。本文将详细介绍C++中的基本数据类型,并通过代码示例展示如何在实际编程中使用它们。


一、整型


整型(Integer)是C++中最基本的数据类型之一,用于存储整数。C++提供了多种整型,包括短整型(short)、整型(int)、长整型(long)和长长整型(long long)。它们的存储大小和取值范围因编译器和平台而异。

示例:

image.png

在上面的代码中,我们声明了四种整型变量,并给它们赋了值。注意,长整型和长长整型字面量通常需要使用L或LL后缀来标识。


二、浮点型


浮点型(Floating-point)用于存储小数。C++提供了单精度浮点型(float)和双精度浮点型(double)。它们的主要区别在于存储大小和精度。

示例:

image.png

在上面的代码中,我们声明了一个单精度浮点型变量和一个双精度浮点型变量,并给它们赋了值。注意,单精度浮点型字面量通常需要使用f或F后缀来标识。


三、字符型


字符型(Character)用于存储字符。在C++中,字符型用char关键字表示。字符型变量可以存储ASCII码表中的字符。

示例:

image.png

在上面的代码中,我们声明了一个字符型变量,并给它赋了一个字符值。


四、布尔型


布尔型(Boolean)用于存储逻辑值,即真(true)或假(false)。在C++中,布尔型用bool关键字表示。

示例:

image.png

在上面的代码中,我们声明了一个布尔型变量,并给它赋了一个真值。我们使用条件运算符(?:)来输出布尔值的文本表示。


五、宽字符型


宽字符型(Wide Character)用于存储宽字符,主要用于支持国际化字符集。在C++中,宽字符型用wchar_t关键字表示。

示例:

image.png

在上面的代码中,我们声明了一个宽字符型变量,并给它赋了一个中文字符值。注意,宽字符字面量需要使用L前缀来标识。我们还使用了setlocale函数来设置本地化,以便正确显示宽字符。同时,输出宽字符

需要使用wcout而不是cout。


六、枚举类型


枚举类型(Enumeration)是一种用户定义的数据类型,它包含了一组命名的整数值。在C++中,可以使用enum关键字来定义枚举类型。

示例:

image.png

image.png

在上面的代码中,我们定义了一个名为Color的枚举类型,并包含三个命名常量:RED、GREEN和BLUE。然后,我们声明了一个Color类型的变量myColor,并给它赋了RED值。最后,我们使用switch语句根据myColor的值输出相应的信息。


七、指针类型


指针类型(Pointer)用于存储内存地址。在C++中,指针是一个变量,其值为另一个变量的地址。指针类型通过在变量类型后添加星号(*)来定义。

示例:

image.png

在上面的代码中,我们首先声明了一个整型变量x,并给它赋了一个值。然后,我们声明了一个指向整型的指针ptr,并将其初始化为x的地址。接着,我们输出了x的值、x的地址、ptr的值(即x的地址)以及ptr指向的值(即x的值)。


八、自定义类型


除了上述基本数据类型外,C++还允许用户通过结构体(struct)、类(class)、联合体(union)等方式定义自己的数据类型。这些自定义类型可以包含基本数据类型、其他自定义类型以及成员函数等。

示例(使用结构体):

image.png

在上面的代码中,我们定义了一个名为Person的结构体类型,它包含两个成员:name(字符串类型)和age(整型)。然后,我们声明了一个Person类型的变量p1,并给它的成员赋了值。最后,我们输出了p1的成员值。


九、类型别名


C++11引入了类型别名(Type Alias),允许我们为现有类型创建新的名称。这可以通过使用using关键字或typedef关键字来实现。

示例(使用using):


image.png

在上面的代码中,我们使用using关键字定义了一个名为IntArray的类型别名,它表示int数组。然后,我们使用IntArray来声明一个大小为10的整型数组。


总结:


C++提供了丰富的数据类型,包括整型、浮点型、字符型、布尔型、宽字符型、枚举类型、指针类型以及自定义类型等。理解并掌握这些数据类型是编写高效、可靠C++代码的基础。通过本文的介绍和示例代码,相信读者对C++中的数据类型有了更深入的了解。



相关文章
|
30天前
|
编译器 C++
C++入门12——详解多态1
C++入门12——详解多态1
33 2
C++入门12——详解多态1
|
30天前
|
编译器 C语言 C++
C++入门3——类与对象2-2(类的6个默认成员函数)
C++入门3——类与对象2-2(类的6个默认成员函数)
23 3
|
30天前
|
存储 编译器 C语言
C++入门2——类与对象1(类的定义和this指针)
C++入门2——类与对象1(类的定义和this指针)
22 2
|
30天前
|
C++
C++入门13——详解多态2
C++入门13——详解多态2
73 1
|
30天前
|
程序员 C语言 C++
C++入门5——C/C++动态内存管理(new与delete)
C++入门5——C/C++动态内存管理(new与delete)
55 1
|
30天前
|
编译器 C语言 C++
C++入门4——类与对象3-1(构造函数的类型转换和友元详解)
C++入门4——类与对象3-1(构造函数的类型转换和友元详解)
18 1
|
30天前
|
存储 编译器 C++
C++入门3——类与对象2-1(类的6个默认成员函数)
C++入门3——类与对象2-1(类的6个默认成员函数)
22 1
|
30天前
|
编译器 C语言 C++
C++入门6——模板(泛型编程、函数模板、类模板)
C++入门6——模板(泛型编程、函数模板、类模板)
36 0
C++入门6——模板(泛型编程、函数模板、类模板)
|
19天前
|
存储 安全 编译器
【C++打怪之路Lv1】-- 入门二级
【C++打怪之路Lv1】-- 入门二级
16 0
|
19天前
|
自然语言处理 编译器 C语言
【C++打怪之路Lv1】-- C++开篇(入门)
【C++打怪之路Lv1】-- C++开篇(入门)
18 0