我想问一个C语言题目

来源:百度知道 编辑:UC知道 时间:2024/05/25 09:42:40
定义int a=5,b;则执行表达式b=++a*--a之后,变量 b的值为_____

不同的编译器 会产生不同的结果

因为有的编译器 可能先算 运算符左边 那么结果就是30
有的编译器 可能先算 运算符右边 那么结果是20
放心这样 存在争议的题目 不会出现在 考卷上
做为程序员 为了确保 程序的正确性 一般不会这么写表达式的

不同的编译器会有不同的结果,
一种情况:

将5作++a和--a中的a,因此,b=6*4=24

另一种情况

a的初使值为5,++a之后,a值为6,然后再--a之后,a值为5,因此b=6*5=30

30

貌似是25呢

30

在C语言中,开始a值是5,但执行了++a之后程序便把原先a的值修改为6,所以a值便成了6,到后面的--a后a又变回了5,所以照我学的结果应该是30!!!但我在编译器上运行了后发现WXD11011和denning都说的有道理.