gpt4 book ai didi

c - 为什么不能返回((a++)%4)

转载 作者:行者123 更新时间:2023-11-30 18:16:55 25 4
gpt4 key购买 nike

我有一个 C 函数:

static uint8_t func( uint8_t a )
{
return ( (a++) % 4 );
}

当我调用它时:

uint8_t b = 0;
b = func(b);

我找到了b仍然是0而不是1。为什么?

最佳答案

当您使用后递增时,该值将在表达式求值后递增。这意味着首先它将替换表达式中的a并对其求值,求值完成后它将增加a

return ( (a++) % 4 );

此处将作为

return ( (0) % 4 ); // after this expression is solved 'a' becomes 1

如果你想返回1使用预增量-

return ( (++a) % 4 ); 

在这种情况下,在计算表达式之前,它将递增a

return ( (1) % 4 ); // so it will return 1.

return ((a+1)%4);

您也可以使用上面的表达式。它不会修改您收到的a的值。

关于c - 为什么不能返回((a++)%4),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25301239/

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