C++指针

一、指针的本质

在了解指针之前,我们需要先了解一下变量的概念。我认为变量就是一块特定的内存空间。例如下里面的语句:

int loop = 9;

上述代码块的含义就是在内存中申请一块长度为4字节的内存空间,假设这块空间的内存编号为0x0001,即就是这块内存空间中存放的变量类型为int,其数值为9,变量名叫做loop。

在了解变量的含义之后,接下来介绍一下什么叫做指针,指针的本质就是一个变量,只不过与常规其他变量不同的是,其保存的是变量的地址。

指针由数据类型*变量名组成,如下:

int * p = &loop;

 二、空指针

指针变量指向内存中编号为0的空间,这样的指针比变量叫做空指针。

空指针的用途主要是用来初始化指针。要注意的是,若一个指针是空指针,那么这个指针指向的内存是不可以访问的。

int * p = null;

三、野指针

指针变量指向非法的内存空间,这样的指针叫做野指针。例如:

int * p = (int*)0x1001;

我们任意在内存空间中指定一个内存编号,但是我们并没有申请这块内存编号。所以我们就没有资格去访问这块内存空间。

四、const修饰指针

const int * p = &a;

上述代码块表述的是常量指针,指针的指向可以发生变化,但是指针指向的值不能发生变化。也就是说,指针p可以指向别的变量,但是变量a的值不能被改变。

int * const p = &a;

上述代码块表示的是指针常量,指针指向不可以改变,但是所指向变量的值可以发生改变。

const int * const p = &a;

上述代码块表示的是指针的指向和所指向变量的值都不能发生变化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值