我得到的代码简要如下 首先,他们在类中定义结构:
Struct Energy{
double elas;
double slip;
double dash;
}
。 。 。 然后他们定义了这个结构的对象
Energy* Prop;
。 。 。 然后他们用它来写下面的条件
if (!Prop){
Prop->elas = elas_;
Prop->slip = slip_;
Prop->dash = dash_;
}
让我感到困惑的是因为我知道道具的类型是能量。那么他们如何在if条件下使用它。我是C ++的新手,很多东西我都不懂。希望你们能帮助我吗?
谢谢
答案 0 :(得分:3)
请注意变量声明中的能量之后的星号
Energy* Prop;
这意味着Prop的类型为Energy *,这意味着它是指向Energy类型的指针。指针可以指向一个实例(有效与否,但这不是这个问题的范围)或者什么都没有,也称为null。
在条件中使用时,指针的作用就像一个整数值,如果它为零(或为null),则为false,否则为true。
写if (!prop)
检查指针是否为空。
if (!prop) {
// prop is null, handle error
}
else {
// prop points to something, you can use it
}
编辑:如果您使用的是C ++ 11或更高版本,请查看nullptr
。
答案 1 :(得分:1)
Prop是一个能量结构的指针,这意味着它可以为null(无点)。指针如果不为空则为真。
答案 2 :(得分:0)
if (!Prop)
表示if (Prop != 0)
或if (Prop != nullptr)