a为整型变量,a=10;a+=a-=a*a
时间: 2023-10-25 08:09:47 浏览: 73
这行代码存在问题,因为表达式中 a*a 的运算符优先级高于赋值运算符和加减运算符,所以这行代码的执行顺序是 a-=a*a 先执行,然后再执行 a+=a。这会导致 a 的值不确定,因为它取决于运算符执行的顺序。
正确的写法应该是使用括号来明确运算顺序,例如:
a = 10;
a += (a - (a * a));
或者
a = 10;
a = a + (a - (a * a));
相关问题
定义三个整型变量a,b,c,计算逗号表达式c=(a=7,b=a+2,b+1),并输出变量a,b,c的值)
根据你的描述,定义了三个整型变量a、b、c,并计算了逗号表达式c = (a = 7, b = a + 2, b + 1)。逗号表达式的计算规则是从左到右依次计算每个表达式,并返回最后一个表达式的值。
首先,将a赋值为7,然后将b赋值为a+2,即9。接着,计算b+1,得到10。最后,将结果10赋值给变量c。
因此,变量a的值为7,变量b的值为9,变量c的值为10。
输出结果如下:
a = 7
b = 9
c = 10
定义三个整型变量abc,计算逗号表达式c=(a=7,b=a+2,b+1),并输出变量abc
变量abc的定义如下:
int a, b, c;
计算逗号表达式c=(a=7,b=a*2,b+1),得到c的值为15,a的值为7,b的值为14。
输出变量abc的值:
printf("a=%d, b=%d, c=%d", a, b, c);
输出结果为:a=7, b=14, c=15。