gpt4 book ai didi

c - c 中的参数评估

转载 作者:行者123 更新时间:2023-11-30 21:49:35 26 4
gpt4 key购买 nike

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

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

谁能解释一下答案是如何评估的?MAN 是一个函数。我想知道如何计算参数的顺序。我得到的答案是 12 6 11。

最佳答案

请注意,运算符、序列点和求值顺序都是相当基本的内容,您用来学习该语言的任何书籍或文档都应该涵盖所有内容。

后递增运算符(变量名后面的 ++)将递增变量的值并计算前一个值。换句话说,如果i值为 10 ,然后i++将评估为 10 ,和i将具有新值 11 .

预自增运算符(变量名前的 ++)将递增变量的值并计算新值。换句话说,如果j值为 5 ,然后++j将评估为 6j具有新值 6 .

如果,正如你所说,MAN()是代码中的函数而不是类似函数的宏,那么您声明的结果为 12 6 11是不可能的,因为你从 i=10 开始,然后i++给出i 11 的值,所以当你将它传递给 printf() 时根本没有办法获得 12出来了。因此,一定是MAN()是一个类似函数的宏,它多次评估至少一个参数。

请提供 MAN() 的实际定义您的代码正在使用。

关于c - c 中的参数评估,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24992875/

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