C++ primer学习笔记8.17

C++ primer学习笔记8.17

一 复合类型(指针&引用)
1 一条语句定义多个指针变量,每个变量前都要加*
2不能定义指向引用的指针,因为引用不是对象
3一般来说,指针的类型都要与它指向的对象严格匹配。第一个例外情况****指向常量的指针可以指向非常量对象(但是不能通过该指针改变其指向的非常量对象的值,所谓指向常量的指针并非指其指向的对象是常量,而是说不能通过该指针修改其指向对象的值)。第二个例外情况是可以将基类的指针指向派生类的对象上,智能指针同样也支持。
4 指针的值的四种状态:
①指向一个对象:值是该对象的地址,可以对该指针进行解引用操作
②指向紧邻对象所占空间的下一个位置:值是紧邻对象地址的下一个,不可以对该指针进行解引用操作,典型的例子是迭代器的尾后指针
③空指针:不指向任何对象
④无效指针:除了上述情况的
5 解引用:指针可以通过解引用运算获取或者改变其指向对象的值,但是解引用操作仅适用于确实指向了某个对象的有效指针
6 &在声明中是说明该变量为引用类型,在表达式中是对该变量取地址
*在声明中是说该变量为指针类型,在表达式中是对该变量解引用
先判断其是在声明中,还是在表达式中,然后再判断其含义
7 空指针:试图使用一个指针前,先判断其是否是空指针。(对空指针进行某些操作会造成难以察觉的错误)
生成空指针的方法:
int* ptr=nullptr; c++11的新方法
int* ptr=0;
int* ptr=NULL;需要包含头文件#include <stdlib.h>#include <cstdlib>
二 基本内置类型
1 基本数据类型包括算术类型(字符型、整型、浮点型、布尔型)和空类型
2 算术类型包括字符型、整型、浮点型、布尔型,字符型、布尔型都可归为整型
算术类型的尺寸在不同机器上有所差异,即内置类型的大小与机器硬件密切相关
①字符类型:
a.基本字符类型:char
b.扩展字符类型:wchar_t,char16_t,char32_t
char,wchar_t,char16_t,char32_t的最小尺寸分别为8,16,16,32比特,允许编译器赋予这些类型更大的尺寸
②整型
short,int,long,long long最小尺寸分别为16,16,32,64比特,一个int至少和一个short一样大,一个long至少和一个int一样大,一个long long至少和一个long一样大,long long是c++11新特性
③浮点型
单精度 float:32个比特,7个有效位
双精度 double:64比特,16个有效位
扩展精度 long double:96或者128比特
3 比特、字节、字
大多数机器以2的整数次幂个比特作为块来处理内存,可寻址的最小内存块即为字节。一个字节至少要能容纳机器基本字符集中的字符。
存储的基本单位是字,一般包括几个字节。
大多数机器的字节包含8个比特,字包含32或者64个比特,即4或8个字节
我们能够使用地址表示从这个地址开始的大小不同的比特串,为了赋予内存中某个地址具体含义,我们必须知道存储在该地址的数据的基本类型。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值