X 我知道了TIPS:左右滑动导航栏可以查看更多栏目
#include <stdio.h>int main(){ int b =1; int a = 5; b = ++a*–a; printf(“b = %d\n”,b); return 0;}
这个程序的运行结果是什么,为什么是这个结果,搞不懂
>> 本文固定链接: http://www.vcgood.com/archives/3603
>> 转载请注明: endian11 2012年03月23日 于 C语言帝国 发表
这个简单,但是也不简单,这个和编译器的实现有关,我的编译器是gcc,输出25.这样的代码其实是不提倡的。如果编译器把它解释成++a;–a;b=a*a;那么就是25.但是也可以++a的数据6乘以–a就是5,那么就是30.这种有歧义的代码,应该拆开成简单的逻辑。推荐你一本书《你比须知道的495个c语言问题》。其中讲过这样的代码。这本书特别好
你必须先 登录才能发表评论。
这个简单,但是也不简单,这个和编译器的实现有关,我的编译器是gcc,输出25.这样的代码其实是不提倡的。如果编译器把它解释成++a;–a;b=a*a;那么就是25.但是也可以++a的数据6乘以–a就是5,那么就是30.这种有歧义的代码,应该拆开成简单的逻辑。推荐你一本书《你比须知道的495个c语言问题》。其中讲过这样的代码。这本书特别好