c++ primer读书笔记
2023-02-18 16:41:53 时间
精读c++ primer5
关于int的范围计算
int一般是4个字节,一共是32个位,因为有一位是符号位,所以是最大值为2^31 对于负数,应该也是-2^31次方,但是实际是-2^31-1因为负数有两种方式表示0
一种是: 10000000 00000000 00000000 00000000 另一种是: 00000000 00000000 00000000 00000000
那这时候第一种表示方式用于表示-2^32这个数值
关于指针和引用占用空间引发的思考
在概念上,我们知道,引用是一个变量的别名,指针是一个新的变量,指向地址;并且引用不占空间,指针占4个字节
但是我们想想,这里说的不占空间是真的不占内存码,明显不是的,引用其实保存的也是一个地址,所以引用和指针所占空间都为4个字节,这里所谓的不占内存只是一个抽象的说法,不用新建一个变量来存储这个值,不是值拷贝,这可能是对程序员的一个谎言。
而且在查阅很多博客之后,我发现其实引用的本质就是一个指针,常量指针,指向固定,而且必须初始化,这就是引用和指针的区别
const引用常量
int i=0;
const int &a=i; #修改a不会修改i
int &b=i; #修改b会修改i
这里的引用值a修改了,并不会影响i的值,因为编译器实际做了以下事情
const int temp=i;
const int &a=temp;
相关文章
- git merge 命令详解
- C++基础篇之什么是 数据结构
- Hello DPU,Goodbye CPU!
- C++基础篇之什么是数据类型
- Golang ast 的使用
- c++中的std::stod, stCPP程序说明std::stod():stof, std::stold
- php解压文件
- 堪称一站式管理平台,同时支持Linux、MySQL、Redis、MongoDB可视化管理!
- Golang语言情怀--第94期 区块链技术-centos安装部署IPFS
- Golang语言情怀--第96期 区块链技术-以太坊公链合约部署-第2节:本地合约部署
- Golang语言情怀--第97期 区块链技术-以太坊公链合约部署-第3节:合约转Go语言代码
- Golang语言情怀--第98期 区块链技术-以太坊公链合约部署-第4节:MetaMask钱包连接到本地环境
- Golang语言情怀--第99期 区块链技术-以太坊公链合约部署-第5节:部署合约到以太坊公链
- Golang语言情怀--第100期 区块链技术-以太坊公链NFT图片去中心化存储-第1节:IPFS存储方案
- Golang语言情怀--第101期 区块链技术-以太坊公链NFT图片去中心化存储-第2节:go语言实现IPFS存储demo
- Golang语言情怀--第102期 区块链技术-通过区块链技术告诉你是“斯人”还是“是人”
- Golang语言情怀--第103期 区块链技术-关于区块链中的智能合约:您想知道的一切
- Power BI模拟谷歌2022搜索排行榜
- gTasks Pro for Mac(Google任务管理器) 中文
- mongodb的安装