gpt4 book ai didi

c++ - 返回堆栈[--stp]; - 哪个先发生? stp 是递减还是返回元素?

转载 作者:太空狗 更新时间:2023-10-29 23:34:22 24 4
gpt4 key购买 nike

如果我有这样的代码:

int pop()
{
return stack[--stp];
}

我知道它在做两件事。它返回元素“stp”中一维数组“stack”中包含的值。它还在递减“stp”。

但是这是按什么顺序发生的呢?

它是否返回元素stp的值,然后递减stp

或者它是否递减 stp,然后返回现在被递减的 stp 引用的元素的值?

如果代码是:

int top()
{
return stack[stp-1];
}

它的工作方式有什么不同吗?

抱歉,我知道这是一种非常常见的编码风格——我在理解简洁、未注释的代码时仍然有些困难——即使是这样的基础。对不起。

最佳答案

它将递减stp,然后返回数组中新stp 值所在位置的值。

--stp 是一个“前缀递减”,它被定义为递减参数(stp),然后返回新值。它有一个称为“后缀递减”的对应项,stp--,它递减 stp 然后返回 old 值 - 所以 stack[stp--] 将为您提供当前 stp 偏移量的值,但仍会递减 stp

最后,带有 stack[stp-1] 的版本将从与 stack[--stp] 相同的位置返回值,但是 stp 本身将保持不变。

关于c++ - 返回堆栈[--stp]; - 哪个先发生? stp 是递减还是返回元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4226163/

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