gpt4 book ai didi

c - 为什么 "i"变量在我的程序中递增两次?

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

我的一个 friend 向我展示了这个程序并问我为什么 i 变量会递增两次。

根据我的理解 MAX(i++,++j); 在这一行 i 首先作为参数发送然后递增,所以如果初始值i10 那么增加的值应该是11,但是它显示i 的增加值是12

程序:

#include<stdio.h>

#define MAX(x,y) (x)>(y)?(x):(y)

void main(void)
{
int i = 10;
int j = 5;
int k = 0;

k = MAX(i++, ++j);

printf("%d %d %d",i,j,k);
}

输出:

12 6 11

谁能解释一下这个值是如何增加到 12 的?

谢谢。

最佳答案

MAX 是宏,不是函数。在您的用例中,它扩展为:

k = (i++) > (++j) ? (i++) : (++j);

关于c - 为什么 "i"变量在我的程序中递增两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4885105/

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