我遇到了一个int k=(a++,++a)
在其中使用语句的代码段。我不知道这是哪种类型的语句(a++,++a)
以及如何对其进行评估。为什么在这里使用支架?它是函数调用吗?
这是代码。
#include <stdio.h>
int main(void) {
int a=5;
int k=(a++,++a);
printf("%d\n",k);
return 0;
}
我得到的输出是7-为什么呢?
这不是函数调用。
这是一个使用逗号运算符的示例,该运算符从左到右评估每个表达式并返回最右边的表达式的结果。和写作一样
a++;
k = ++a;
如果已经写过
k = a++, ++a;
那么它将被解析为
(k = a++), ++a;
并评估为
k = a++;
++a;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句