《C++ Primer 第5版》第2章 变量和基本类型 笔记

视频推荐:阿西拜编程 - 明解 C++ Primer

导图 - 第2章 变量和基本类型

感觉还是有很多地方不懂 T-T

在这里插入图片描述

2.1 基本内置类型

C++:静态数据类型语言,即程序运行前(编译时)需要进行类型检查
Python:动态数据类型语言,程序运行时才进行类型检查

C++的基本内置类型有:算术类型 和 空类型void

2.1.1 算术类型

在这里插入图片描述

字节 byte、字 word

字节 是可寻址的最小内存块
是存储的基本单元,通常由几个字节组成
在这里插入图片描述

参考博客:瘦弱的皮卡丘 - 32位和64位到底有什么区别?

无符号类型、带符号类型

在这里插入图片描述

2.1.2 类型转换

在这里插入图片描述

切勿混用带符号类型和无符号类型

可能会出现无法预知的行为

在这里插入图片描述

2.1.3 字面值常量

字面值常量的形式和值决定了他的数据类型

参考博客:我只是一只自动小青蛙 - 1.2 字面值常量

在这里插入图片描述
在这里插入图片描述可能会在赋初值或输出时用到


2.2 变量

2.2.1 变量定义

在这里插入图片描述

可以把对象理解成,具有某种数据类型的内存空间

初始化

在这里插入图片描述

C++ 初始化 参考博客:

默认初始化

在这里插入图片描述

写程序不怕报错,而是怕不报错,结果又不对,就很难找到问题所在

2.2.2 变量声明与定义的关系

声明比较含糊:有一个人叫张三,因为他是一个人,也知道他能进行哪些操作
定义则很明确:有一个人叫张三,并且他的其他信息也很明确,比如身高、体重,同时也知其操作

在这里插入图片描述

参考博客:Guan小白 - 详解static和extern

2.2.3 标识符

标识符就是我们给变量、对象起的名称

在这里插入图片描述

2.2.4 名字的作用域

在这里插入图片描述
在这里插入图片描述

输出#3:使用作用域操作符::来覆盖默认的作用域规则,因为全局作用域本身没有名字,所以当作用域操作符左侧为空时,即向全局作用域请求获取作用域操作符右侧名字对应的变量

作用域操作符,参考博客:

如果像上图一样写程序,则可读性差,还容易出错,而且不好找到错误位置


2.3 复合类型

一条声明语句由 一个基本数据类型 和 紧随其后的一个声明符列表 组成

声明符,命名了一个变量,并指定该变量为与基本数据类型有关的某种类型
int a中的a就是声明符,其类型为int型;而复合类型中,int &a中的&a是声明符,其类型为复合类型,int型变量的引用

参考博客:毛裤先生_2 - C/C++语言中的声明

2.3.1 引用

起别名

在这里插入图片描述

参考博客:凹凸曼~ - C++中左值(引用)及右值(引用)详解

2.3.2 指针

在这里插入图片描述

取地址符 和 解引用符

在这里插入图片描述

这里我画了个图帮助自己理解
在这里插入图片描述

参考博客:小堂同学 - C++基础:引用与指针

空指针

在这里插入图片描述

当心空指针异常哦~

void * 指针

在这里插入图片描述

2.3.3 理解复合类型的声明

原则:从右往左读

指向指针的指针

在这里插入图片描述

指针的引用

在这里插入图片描述

参考博客:远离蒙昧 - C++Primer第2章(3)复合类型


2.4 const 限定符

在这里插入图片描述
在这里插入图片描述

2.4.1 const 的引用

即对常量的引用

在这里插入图片描述

2.4.2 指针和 const

参考博客:悲伤的鱼香肉丝er - const与指针的关系

指向常量的指针

在这里插入图片描述

const 指针(即常量指针)

在这里插入图片描述

在这里插入图片描述

2.4.3 顶层 const

在这里插入图片描述

2.4.4 constexpr 和常量表达式

常量表达式

在这里插入图片描述

constexpr 变量(没懂)

参考视频1:锦鲤的如意喵 - 3分钟掌握C++ constexpr vs const
参考视频2:C++11新特性constexpr和const
参考博客1:Gamer_code - constexpr
参考博客2:暗夜无风 - C++知识整理系列(三)—— constexpr常量表达式
参考博客3:C咖咖 - C++之constexpr详解

在这里插入图片描述
constexpr只对顶层const有效
constexpr指针不能指向函数体内的变量,因为这样的变量存放在栈区,而非静态数据存放区


2.5 处理类型

2.5.1 类型别名

在这里插入图片描述

注意复合类型的别名的理解方式

参考博客:

2.5.2 auto 类型说明符

编译器会根据 auto 变量的初始化来推断类型,因此用auto声明的变量必须有初始值

在这里插入图片描述

参考博客:

2.5.3 decltype 类型指示符

在这里插入图片描述

参考博客:qq_38196982 - C++ decltype用法详解


2.6 自定义数据类型

数据类型:一组数据以及相关操作的集合

2.6.1 定义 Sales_data 类型

在这里插入图片描述

2.6.2 使用 Sales_data 类

自己走一遍

在这里插入图片描述

2.6.3 编写自己的头文件

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值