一个关于C语言的程序

来源:百度知道 编辑:UC知道 时间:2024/06/05 10:42:51
#include <stdio.h>换行int main<void>{换行int a=6;换行a+=2;换行printf("a=%d\n",a);换行a-=3;换行printf("a=%d\n",a);结束…我想问的是它的结果怎么是8和5而不是8和3

这是一个关于运算符优先级的问题

a+=2 表示 将a的值加上2所得结果再赋给a ,运行完本句后a的值变为8
a-=3 表示 将a的值减去3所得结果再赋给a ,运行完本句后a的值变为5

#include <stdio.h>
int main<void>{
int a=6;
a+=2;
printf("a=%d\n",a);
a-=3;
printf("a=%d\n",a);//结束…我想问的是它的结果怎么是8和5而不是8和3

a+=2;相当于a=a+2,所以a=8
然后a-=3;相当于a=a-3=8-3=5
所以是8和5

开始a=6
然后a+=2结果a=8
输出
然后a-=3结果a=5
明白了