首页 理论教育 C++指针基本操作-零基础C++从入门到精通

C++指针基本操作-零基础C++从入门到精通

时间:2023-08-20 理论教育 版权反馈
【摘要】:运行结果如图6.2.4所示:图6.2.4指针的基本操作我们可以看到,符号“&”表示了取地址的操作,它可以获得变量的内存地址。在动手写6.2.4中我们用解引用操作符读取了指针指向的数据,而解引用操作符也可以用来作为赋值语句的左值以修改数据。图6.2.6图解指针基本操作图6.2.6中的变量num由两部分组成,上半部分“intPtr”是地址,而下半部分“*intPtr”是地址中实际存储的数据。

C++指针基本操作-零基础C++从入门到精通

对于指针来说,解引用和取地址是最重要的两个操作符。

动手写6.2.4

动手写6.2.4展示了指针的解引用和变量的取地址操作。运行结果如图6.2.4所示:

图6.2.4 指针的基本操作

我们可以看到,符号“&”表示了取地址的操作,它可以获得变量的内存地址。将其赋值给指针intPtr后,打印&num和intPtr将同时获得num的地址。而当我们使用解引用操作符“*”的时候,*intPtr将会得到intPtr所指向的地址中的数据,也就是num的值。

在示例中,我们还加了一个条件来检查指针是否为NULL,以此保证对intPtr解引用一定是安全的。这里我们利用了数值与布尔值之间的隐式转换,只写了intPtr作为条件,因为intPtr为空的话值会转化为false。条件intPtr也可以写成“intPtr != NULL”。

在动手写6.2.4中我们用解引用操作符读取了指针指向的数据,而解引用操作符也可以用来作为赋值语句的左值以修改数据。(www.xing528.com)

动手写6.2.5

动手写6.2.5展示了左值解引用。运行结果如图6.2.5所示:

图6.2.5 左值解引用

在本示例中,我们使用了左值的解引用操作将指向num的指针中的数据修改成3,由于指针与num的地址相同,因此num也会变成3。指针的这一种行为可能会让初学者感到困惑,接下来我们还是用图片来直观地解释指针解引用、取地址和左值解引用的行为。

图6.2.6 图解指针基本操作

图6.2.6中的变量num由两部分组成,上半部分“intPtr”是地址,而下半部分“*intPtr”是地址中实际存储的数据。intPtr的值是地址100,*intPtr会返回数据4。右上角的&num取得变量num的地址100,可以赋值给类似intPtr的指针变量。图片下方展示了左值解引用的行为,*intPtr在这里取得修改num的权限,然后3将会被赋值到num所在的地址,覆盖掉原有的值4。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈