【发布时间】:2014-09-04 07:06:27
【问题描述】:
int i=1,j;
j= ++i + ++i;
printf("%d",j);
这个程序的输出是 C 中的6。但是当我对 C# 使用相同的逻辑时,
输出为 5 。
我想知道为什么相同的逻辑在两种不同的语言中表现不同的原因
【问题讨论】:
-
未定义的行为意味着:5 是 6。所以输出是相同的 :)(如果在 C 中没有 sequence point,您不能更改
i两次)跨度> -
您的意思是 your C 编译器中的输出为 6。其他答案是可用的,因为它是未定义的行为。
-
可能是因为它们不是“相同的逻辑”。
-
这两种方式都没有关系。只有白痴才会在实际代码中使用这种结构。
-
只是好奇..在询问之前您是否对此进行过任何研究?
标签: c# c pre-increment