gpt4 book ai didi

c++ - 帮助我理解这个 C++ for 循环的终止参数

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:14:29 24 4
gpt4 key购买 nike

我不明白这个for循环的终止参数。这是什么意思?具体来说,?->:0代表什么?

for( i = 0; i < (sequence ? sequence->total : 0); i++ )

最佳答案

这:(sequence ? sequence->total : 0)(它被称为“三元 if”,因为它需要三个输入)就像在说:

if (sequence)
replaceEntireExpressionWith(sequence->total);
else
replaceEntireExpressionWith(0);

-> 是一个解引用器,就像 * 一样,但它使用户数据类型如 struct 易于使用。

sequence->total 表示 sequence 是指向其中一种数据类型的指针,您正在访问什么的 total 属性它指向。它与以下内容完全相同:

(*sequence).total;

所以循环:

for( i = 0; i < (sequence ? sequence->total : 0); i++ )

sequence 的计算结果为 false 时退出,因为 0 == false

三元 if 构造用于确保它们不会取消引用 (->) 空指针,因为如果它们只是将 sequence->total 作为条件下,他们每次都会取消引用它。不开心! =(

关于c++ - 帮助我理解这个 C++ for 循环的终止参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2701235/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com