下面一段C语言代码,谁有Turbo C 2.0的帮忙编译一下,看看运行结果是什么?
#include<stdio.h>
int main(void)
{
int i = 3, j = 3, k = 0;
int m = 3, n = 0, l = 3;
int a = 5, b = 5;
k = (j++) * (++j) + (j--) * (--j);
n = (l++) + (l++) + (l++);
printf("k = %d (i++) * (++i) + (i--) * (--i) = %d (m++) + (m++) + (m++) = %d n = %d\n",
k, (i++) * (++i) + (i--) * (--i), (m++) + (m++) + (m++), n);
a = (a--) + 3;
printf("a = %d b = %d (b = (b--) + 3) = %d b = %d",
a , b, (b = (b--) + 3), b);
}
我用Dev-C++(gcc3.4-win32)编译的结果是:
k = 25 (i++) * (++i) + (i--) * (--i) = 25 (m++) + (m++) + (m++) = 9 n = 9
a = 7 b = 7 (b = (b--) + 3) = 8 b = 5
而我看到的TC的答案是这样的:
k = 18 (i++) * (++i) + (i--) * (--i) = 30 (m++) + (m++) + (m++) = 12 n = 9
a = 7 b = 8 (b = (b--) + 3) = 8 b = 5
帮忙验证一下。谢谢。最好再解释一下原理。 :)
没有评论:
发表评论