gpt4 book ai didi

c - C中的后增量和前增量

转载 作者:太空宇宙 更新时间:2023-11-04 05:29:45 24 4
gpt4 key购买 nike

我对这两个 C 语句有疑问:

  1. x = y++;

  2. t = *ptr++;

在语句 1 中,y 的初始值被复制到 x 中,然后 y 递增。

在语句 2 中,我们查看 *ptr 指向的值,将其放入变量 t,然后稍后递增 ptr。

对于语句 1,后缀自增运算符的优先级高于赋值运算符。那么是不是应该先把y递增,然后把x赋值给y的递增值?

我不理解这些情况下的运算符优先级。

最佳答案

您误解了 2] 的含义。后增量总是产生增量之前的值,然后在之后的某个时间递增该值。

因此,t = *ptr++ 本质上等同于:

t = *ptr;
ptr = ptr + 1;

这同样适用于您的 1] - 从 y++ 产生的值是 y 在增量之前的值。优先级不会改变这一点——无论表达式中其他运算符的优先级高多少或低多少,它产生的值将始终是增量之前的值,增量将在之后的某个时间完成。

关于c - C中的后增量和前增量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10764180/

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