post 增量如何在 c 中工作?
how does post increment works in c?
这里是非常简单的c程序:
int main()
{
int i = 22;
printf("%d %d %d",i,i++,i);
return 0;
}
结果是:
23 22 23
post increment 在这里究竟如何工作?
您无法在此上下文中正确测试。
函数参数的参数计算顺序未定义,因此您的结果将取决于平台。
i++ 的实际工作方式是首先返回旧值然后递增,但这是一个糟糕的测试。
根据您得到的结果判断,i++ 被评估并且 returns 是预增加的值。然后将i的值,i++的return值,i的值传给print函数
这永远不是您应该依赖的东西,因为您可能会在不同的编译器甚至不同的优化设置下得到不同的答案。与另一个答案一样,参数评估的顺序是未定义的行为。
这里是非常简单的c程序:
int main()
{
int i = 22;
printf("%d %d %d",i,i++,i);
return 0;
}
结果是:
23 22 23
post increment 在这里究竟如何工作?
您无法在此上下文中正确测试。
函数参数的参数计算顺序未定义,因此您的结果将取决于平台。
i++ 的实际工作方式是首先返回旧值然后递增,但这是一个糟糕的测试。
根据您得到的结果判断,i++ 被评估并且 returns 是预增加的值。然后将i的值,i++的return值,i的值传给print函数
这永远不是您应该依赖的东西,因为您可能会在不同的编译器甚至不同的优化设置下得到不同的答案。与另一个答案一样,参数评估的顺序是未定义的行为。