鱼C论坛

 找回密码
 立即注册
查看: 1612|回复: 0

[技术交流] C++ 指针

[复制链接]
发表于 2020-1-14 16:40:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
C++ 指针


指针的概念

指针把地址作为数据处理。它是一个既灵活,又危险的机制。

指针允许共享处理数据和内存动态分配。

指针变量是存储地址的变量。

而变量的指针是,当一个变量存储另一个变量的地址时,我们就说那个变量指针

使用指针的目的是提供间接访问。

例如,在某一程序中定义了 int x = 2;,如果系统给 x 分配的空间是 1000 号单元,而指向 x 的指针是变量 p,则 p 中存放的数据是 1000。

这时,1000 号单元的的内容有两种访问方式:

  • 访问变量 x(直接访问)。
  • 访问变量 p 指向的单元的内容(间接访问)。


定义指针变量

定义指针变量要告诉编译器该变量中存放的是一个地址。

指针变量的主要用途是提供间接访问,因此也需要知道指针指向的单元的数据类型。

指针变量的定义格式:
类型标识符 *指针变量名

例如:
int *intp;
double *doublep;

指针变量的操作

由于我们不知道系统分配给变量真正的地址是什么,所以我们需要使用取址运算符 & 取变量的地址。

例如表达式 &x 返回的是变量 x 的地址。

所以我们可以写成 int *intp = &x;

注意:& 运算符后面不能跟常量或表达式。

例如,&2、&(a + b - c) 都是没有意义的。


通过解引用运算符 *,我们可以通过对指针变量的处理改变它所指向的变量的值。

例如,如果 p 指针指向整型 x 变量,那么 *p = 5 等价于 x = 5。

指针变量可以指向不同的变量。

假设有两个变量 x 和 y,指针 p 指向变量 x,我们可以对 p 的重新赋值改变指针的指向。

如果想让 p 指向 y,我们只要执行 p = &y 就可以了。这时,p 和 x 就无任何关系了。

空指针

没有指向任何空间的指针叫做 “空指针”

空指针用常量 NULL 表示,NULL 的值一般赋为 0。

显然,不能解引用空指针指向的值,因为它没有指向任何空间。

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-16 07:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表