c++入门练习

C++ Primer Exercise

本文关键字:练习 c++      更新时间:2023-10-16

我刚刚开始学习c++,并在c++入门中遇到了2个练习。这些练习中有一个我看不懂。

习题2.22 c++入门
假设p是指向int的指针,解释以下代码:

if (p) //....  
if (*p) //....  

正如我在1语句中理解的,我们检查指针p的条件是true还是false
在2语句中,所有操作都是一样的,只是这次我们使用了解引用操作符
如果我错了,你能告诉我哪里错了吗?

和下一个练习,这个练习我看不懂
运动2.23
给定一个指针p,你能确定p是否指向一个有效的对象?如果有,怎么做?如果不是,为什么不呢?

我知道的事情是,当你的变量初始化,并有相同的类型的指针,然后你可能知道是你的指针指向有效的对象。并且试图访问无效指针可能会导致代码问题,编译器无法发现此问题。
关于这个练习还有什么可以补充的吗?还是我猜错了?
感谢您的宝贵时间!

假设

int *p = NULL;

:

if (p)

检查p是否为NULL并返回false。

if (*p)

检查(*p) == 0,即p所指向的整数是否为0。

如果你有

int *p;

。,则p将指向内存中的随机地址,

if (p)

在大多数情况下返回true。和

if (*p)

将给出未定义行为