作业帮 > 综合 > 作业

C语言运算表达式问题定义int a=5,b;则执行表达式b=++a*--a之后,变量b的值是什么?可我觉得是30

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/18 03:40:14
C语言运算表达式问题
定义int a=5,b;
则执行表达式b=++a*--a之后,变量b的值是什么?
可我觉得是30
a++这个后缀++是很低的运算级别,就是所有运算之后才自增.而++a是操作符最高的,就是先自增,再进行别的运算.
所以b=++a*--a=6*-5=30.
答案错了.
再问: #include main() {int a=5,b; b=++a*--a; printf("%d",b);} 这个程序的运行结果就是25
再答: 不好意思,一时疏忽了…… 其实++a和--a之前的运算符是一样的最高优先级,所以上面那条计算语句是先进行++a和--a(即先加1后减1得到5)之后再进行5*5=25的结果……
再问: 先加1后不是6么 6减1不就是5么 那不就是30么