C++指针随记

C++指针随记,第1张

C++指针随记 复合类型

基于其它类型定义的类型,如:引用、指针


指针

定义:与引用类似,指针也实现了对其他对象的间接访问。而与引用不同的是,其一,指针本身就是一个对象,允许对指针赋值和拷贝,而且在指针的生命周期内它可以先后指向几个不同的对象。其二,指针无须在定义时赋值。

**指针值(即地址)**应处于下四种状态:

  • 指向一个对象
  • 指向紧邻对象所占空间的下一个位置
  • 空指针,意味着指针没有指向任何对象
  • 无效指针,上述情况之外的指针
利用指针访问对象

如果指针指向了一个对象,则允许使用解引用符( *** 作符*****)来访问该对象:

某些符号有多重含义

int i = 42;
int &r = i;         //&紧随类型名出现,因此是声明的一部分,r是一个引用
int *p;             //*紧随类型名出现,因此是声明的一部分,p是一个指针
p = &i;             //&出现在表达式中,是一个取地址符
*p = i;             //*出现在表达式中,是一个解引用符
int &r2 = *p;       //&是神明的一部分,*是一个解引用符
空指针

空指针(null pointer)不指向任何对象,在试图使用一个指针前代码可以首先检查它是否为空。

int *p1 = nullptr;		//等价于int *p1 = 0
int *p2 = 0;			//直接将p2初始化为字面常量0
int *p3 = NULL;			//等价于int *p3 = 0 //#include "cstdlib"

空指针就是对指针的初始化


新标准下现在的C++程序最好使用nullptr,同时避免使用NULL。因为NULL是一种特殊类型的字面值,它可以被转换成任何其他的指针类型。

把int变量直接赋给指针是错误的 *** 作,即使int变量的值恰好为0也不行

int zero = 0;
int *pi;
pi = zero;			// WRONG

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5699452.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存