C++学习笔记 基本数据类型

由于考研的编程题很多都需要使用C++语言来写,所以虽然我不太喜欢C++这门语言,那么还是得来看看。

算术类型

需要提前说明,C++语言属于比较低级的语言,所以没有规定数据类型的具体大小,所有数据类型都可能由于机器不同而产生差异。标准只规定了这些数据类型的最小范围,这一点我们在使用C++的时候也要注意。

整型

整型数据类型和它们的大小总结在下表:

数据类型

含义

最小单位

bool

布尔类型

未定义

char

字符类型

1字节

wchar_t

宽字符类型

2字节

char16_t

Unicode字符类型

2字节

char32_t

Unicode字符类型

4字节

short

短整型

2字节

int

整型

2字节

long

长整型

4字节

long long

长整型

8字节

wchar_t、char16_t和char32_t 是扩展字符类型,第一个用于宽字符,后两者用于Unicode字符集。

浮点型

浮点型数据类型和它们的大小总结在下表:

数据类型

含义

最小单位

float

单精度浮点类型

6位有效数字

double

双精度类型

10位有效数字

long double

扩展精度类型

10位有效数字

带符号的类型

在前面介绍的整型类型中,除了布尔类型和扩展的字符类型之外,其他整型都可以是有符号的(signed)和无符号的(unsigned),它们的区别在于取值范围。假如一个有符号变量的取值范围是-128到127,那么相应的无符号数取值范围就是0到255。默认情况下,类型是有符号类型,如果需要无符号类型需要显式指定。

在进行运算的时候,有符号数会被转换为无符号数进行运算,在这个过程中运算结果可能意外改变。所以为了稳妥起见,不要将有符号数和无符号数混合进行计算。

字面量

直接写在程序中的值称为字面量。由于数据类型有不同类型,所以字面量相应的也有不同的类型。

整型字面量

整型字面值可以有十进制、八进制和十六进制的形式。默认的数字就是十进制的,例如100;如果数字以0开头,那么就是八进制的数,例如024;如果数字以0x或0X开头,那么就是16进制的,例如0xcafe。

后缀

含义

例子

u或U

无符号数

1000U

l或L

long类型

1000L,由于小写可能引起混淆,所以最好使用大写L

ll或LL

long long类型

1000LL,最好采用大写形式

浮点型字面值

浮点数字面值可以有小数和科学计数法两种形式 ,以下都是有效的浮点型字面值。

3.14   0.4   .4   1e10   0.

浮点型字面值的后缀情况见下表。

后缀

含义

例子

f或F

单精度浮点数

0.4F

l或L

long double类型

10.00L,最好使用大写L

无后缀

双精度浮点数

3.14

字符和字符串字面值

由单引号包括的单个字符是字符字面量,例如'c'

由双引号包括的一串字符是字符串字面量,例如"abc",需要注意在C++中,字符串字面量会由编译器隐式添加一个\0字符,以兼容C语言。所以"abc"这个字符串的长度其实是4。这一点需要注意。

如果两个字符串字面量仅由空格分隔,那么这两个字符串实际上是相连的。

char long_string[] = "This is a long line "
    "and next line";

字符和字符串字面量也有一些前缀,总结如下。

前缀

含义

例子

u

char16_t类型

u’c’

U

char32_t类型

U’c’

L

宽字符

L’c’

u8

UTF-8字符串,仅能用于字符串字面量

3.14

布尔值字面量

布尔值字面量只有truefalse两个。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Python研发

javascript作用域

javascript的作用域一直以来是前端开发中比较难理解的知识点,对于javascript的作用域主要记住几句话.

10520
来自专栏柠檬先生

Java 流程控制

Java 主要的流程控制语句有3钟,选择语句,循环语句,跳转语句。 Java 中的作用域,是一对用花括号括起来的,块定义了变量使用的范围,   各个块之间可以嵌...

21970
来自专栏转载gongluck的CSDN博客

前缀、中缀、后缀表达式

它们都是对表达式的记法,因此也被称为前缀记法、中缀记法和后缀记法。它们之间的区别在于运算符相对与操作数的位置不同:前缀表达式的运算符位于与其相关的操作数之前;...

44990
来自专栏GreenLeaves

JavaScript之面向对象学习七(动态原型模式、寄生构造函数模式、稳妥构造函数模式创建自定义类型)

一、动态原型模式 在面向对象学习六中的随笔中,了解到组合构造函数模式和原型模式创建的自定义类型可能最完善的!但是人无完人,代码亦是如此! 有其他oo语言经验的开...

242100
来自专栏锦小年的博客

python学习笔记2.6-集合(set)

一般来说,python中常用的数据结构是:列表(list)、字典(Dict)、元组(tuple)。但是我们常常还会看到另外一种结构:集合(set)。 个人认...

22670
来自专栏java架构师

IEnumerable和IEnumerator的关系

using System; using System.Collections; public class Person { public Person...

290100
来自专栏一“技”之长

Swift中构造方法的解析 原

      构造方法是一个类创建对象最先也是必须调用的方法,在Objective-C中,开发者更习惯称这类方法为初始化方法。在Objective-C中的初始化方...

9720
来自专栏文武兼修ing——机器学习与IC设计

JavaScript入门笔记(5)函数

函数 函数就是最基本的一种代码抽象的方式 函数的声明与调用 JavaScript中声明函数的方法有两种 声明一个有名称的函数,使用类似C语言的functi...

36180
来自专栏java学习

面试题67(以下程序创建了几个对象——String)

面试例题1:以下程序创建了几个对象? String A,B, C; A="a"; B="b"; A=A+B; StringBuffer D=new String...

31270
来自专栏技术博客

JavaScript(RegExp正则匹配)

正则表达式是一个描述字符模式的对象。JavaScript的RegExp对象和String对象定义了使用正则表达式来执行强大的模式匹配和文本检索与替换函数的方法。

27850

扫码关注云+社区

领取腾讯云代金券