我想问一个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都说的有道理.