指针初识

1.指向一个对象;

2.指向紧邻对象所占空间的下一个位置;

3.空指针,意味着指针没有指向任何对象;用字面值nullptr来初始化指针;

4.无效指针,也就是上述情况之外的其他值。


void* 可用于存放任意对象的地址;

试图拷贝或以其他方式访问无效指针的值都会引发错误。访问无效指针的后果无法预计,编译器也不负责检查此类错误,因此必须清楚任意给定的指针是否有效。


例如:

int i=42;

int *p=&i;// p存放着变量i的指针

cout<<*p;//由符号*得到指针p所指的对象,输出42;

*p=0;//由符号*得到指针p所指的对象,即给i赋值;

cout<<*p;//输出0


//


int i=4;

int *p1=0;//p1被初始化,但没有指向任何对象

int *p2=&i;//p2被初始化,存有i的地址

int *p3;//p3的值无法确定

p3=p2;//p3和p2指向同一个对象i

p2=0;//现在p2不指向任何对象

//指向指针的引用

int i=0;

int *p;

int*&r=p;//r是一个对指针p的引用

r=&i;//r引用了一个指针,因此给r赋值&i就是令p指向i

*r=0;//解引用r得到i,也就是p指向的对象,将i的值改为0;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值