2012
03-23

#include <stdio.h>
int main()
{
 int b =1;
 int a = 5;
 b = ++a*–a;
 printf(“b = %d\n”,b);
 return 0;
}

这个程序的运行结果是什么,为什么是这个结果,搞不懂


高手请看》有 1 条评论

  1. BruceWang 说:

    这个简单,但是也不简单,这个和编译器的实现有关,我的编译器是gcc,输出25.这样的代码其实是不提倡的。如果编译器把它解释成++a;–a;b=a*a;那么就是25.但是也可以++a的数据6乘以–a就是5,那么就是30.这种有歧义的代码,应该拆开成简单的逻辑。推荐你一本书《你比须知道的495个c语言问题》。其中讲过这样的代码。这本书特别好

留下一个回复