2.3.2 指针

指针的声明符为 : *d d为变量的名称
指针存放某个对象的地址,若要获取地址,就需要使用取地址符 : &

如:
int a = 2;
int A = &a;

引用不是对象,没有实际的地址,没有引用的指针
指针的类型要与所指向对象的类型严格匹配(有两种情况除外),否则对该对象的操作会引发错误,指针的类型实际上被用于指定其指向对象的类型。

指针的值:

1.指向一个对象;
2.指向紧邻对象所占空间的下一个位置;
3.空指针;
4.无效指针 (上述情况除外)不能访问,不能拷贝其值
2.3.均没有指向任何对象,访问此类指针的对象的操作不被允许

利用指针访问对象

在指针指向一个对象的前提下 允许使用解引用符 * 来访问指针指向的对
int a = 2,*A = &a;
cout<<*A<<endl;就可以输出 2
解引用符只有在声明中财才用于声明指针类型 在表达式中 都是解引用的作用

空指针

生成空指针的方法:
1.int *a = nullptr;
2.int *a = 0;
3.int *a = NULL;(#include前提下)
nullptr可以被转化为任意的指针类型 NULL则是一种预处理变量 其值就为0 预处理命令前不用加std::
使用没有初始化的指针经常会引发程序的崩溃(无法访问一个不存在地址的值)

赋值和指针

指针变量可以任意复制 没有引用那种绑定关系赋值永远改变的对象是等号左侧的对象
如果指针的值是0 则转换为bool类型为false 反之 取true
也可以使用== 和 != 来比较两个指针指向的对象 结果也是 bool类型的值
使用非法指针进行比较的操作会有无法预计的后果

void *型的指针

其可以存放任意对象的地址
不能直接操作void类型的指针 只能用于比较,作为函数的输入和输出,还有赋值给另一个void指针

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值