专栏首页乐百川的学习频道C++学习笔记 基本数据类型

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 条评论
登录 后参与评论

相关文章

  • Kali从入门到银手镯(三):利用Metasploit工具的Win7渗透测试

    现在很多用户还在使用Win7系统,虽然我个人也非常喜欢Win7,也承认这是一款非常经典的系统。但是Win7已经在今年1月份彻底停止了支持,也就是说永远也不会得到...

    乐百川
  • Python configparser标准库简介

    如果你要使用Python处理类似ini这种格式的文件,那么肯定离不开configparser标准库,它使用起来很简单而且非常方便。下面就让我们来看看吧。

    乐百川
  • django 快速入门

    Django是Python语言编写的一个全栈式Web框架,可以帮助我们快速编写一个具有数据库功能、增删查改、后台管理等功能的网站。假如你只需要一些很简单的功能,...

    乐百川
  • CentOS 7上安装KVM,并创建虚拟机

    https://blog.csdn.net/github_27924183/article/details/76914322?locationNum=5&fps...

    菲宇
  • 采用NoteExpress参考文献导入和导出

    (b)选中该文献,选择Export中Citations,RIS,Only citations.然后Export,输出一个ris文件;

    KEVINGUO_CN
  • 怎样实现登录?| Cookie or JWT

    先问小伙伴们一个问题,登录难吗?“登录有什么难得?输入用户名和密码,后台检索出来,校验一下不就行了。”凡是这样回答的小伙伴,你明显就是产品思维,登录看似简单,用...

    小忽悠
  • 怎样实现登录?| Cookie or JWT

    先问小伙伴们一个问题,登录难吗?“登录有什么难得?输入用户名和密码,后台检索出来,校验一下不就行了。”凡是这样回答的小伙伴,你明显就是产品思维,登录看似简单,用...

    小忽悠
  • 性能优化之写时复制(Copy-on-write:COW)

    写入时复制(英语:Copy-on-write,简称COW)是一种计算机程序设计领域的优化策略。其核心思想是,如果有多个调用者(callers)同时请求相同资源(...

    sdcuike
  • IDEA 快键键:展开所有文件夹、折叠所有文件夹(自定义)

    相应的,你也可以设置折叠目录的快捷键,在Preference偏好设置中,搜索 Collapse Node,在Keymap选项页面中对Other下的Collaps...

    一个会写诗的程序员
  • session失效时间设置

    session失效时间设置 一、java代码 request.getSession().setMaxInactiveInterval(1800);/*秒为单位*...

    似水的流年

扫码关注云+社区

领取腾讯云代金券