C++primer 指针(二)

1、空指针不指向任何对象, int * p1 = nullptr;初始化空指针
把int变量直接赋给指针是错误的操作,即使int变量的值恰好等于0也不行。
指针和引用区别:引用并非一个对象,对引用的所有操作都是对引用所绑定的对象进行的;而指针不同,给指针赋值就是令它存放一个新的地址,令其指向一个新的对象
2、赋值永远改变是等号左侧的对象
pi = &val; //pi的值被改变,现在pi指向val即改变了存放在pi内的地址值
*pi = 0; //val的值被改变,pi的指向(也就是地址值)没有变,改变的是pi指向的那个对象的值。
3、void* 指针可以存放任意对象的地址,但具体什么类型对象并不了解。
void* p = &i;是合法的
4、复合类型的声明
int* p1,p2; //p1是指向int的指针,p2是int
避免出错,对于指针或引用的声明,一般每条语句只定义一个变量
5、指向指针的指针
声明符中修饰符的个数并没有限制(如下:int称变量标识符,*称修饰符)
int ival = 1024;
int *pi = &ival; //pi指向一个int型对象
int **pi = π //ppi指向int型指针
它们关系如下: ppi——>pi——>1024
ival = *pi = **pi
6、指向指针的引用
int i = 42;
int *p ; //p是一个int型指针
int *&r = p; //r是一个引用,是对指针的引用,引用的是一个int型指针(从右往左解读,离变量名最近的符号对变量名有最直接的影响)
r = &i; //给r赋值&i(地址),因为r引用的是一个指针,即另p指向i
*r = 0; //解引用r得到i,p所指向的对象,将i的值置0

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值