关于C语言中优先级及括号的问题#include int main(void){int a = 1;int b = 10;a = a + b - (b = a);printf("a = %d\nb = %d\n",a,b);return 0;}这样能实现2个数的交换,那么在语句a = a + b - (b = a)这个语句中执行顺序该怎
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/27 16:40:33
![关于C语言中优先级及括号的问题#include int main(void){int a = 1;int b = 10;a = a + b - (b = a);printf(](/uploads/image/z/14445431-71-1.jpg?t=%E5%85%B3%E4%BA%8EC%E8%AF%AD%E8%A8%80%E4%B8%AD%E4%BC%98%E5%85%88%E7%BA%A7%E5%8F%8A%E6%8B%AC%E5%8F%B7%E7%9A%84%E9%97%AE%E9%A2%98%23include+int+main%28void%29%7Bint+a+%3D+1%3Bint+b+%3D+10%3Ba+%3D+a+%2B+b+-+%28b+%3D+a%29%3Bprintf%28%22a+%3D+%25d%5Cnb+%3D+%25d%5Cn%22%2Ca%2Cb%29%3Breturn+0%3B%7D%E8%BF%99%E6%A0%B7%E8%83%BD%E5%AE%9E%E7%8E%B02%E4%B8%AA%E6%95%B0%E7%9A%84%E4%BA%A4%E6%8D%A2%2C%E9%82%A3%E4%B9%88%E5%9C%A8%E8%AF%AD%E5%8F%A5a+%3D+a+%2B+b+-+%28b+%3D+a%29%E8%BF%99%E4%B8%AA%E8%AF%AD%E5%8F%A5%E4%B8%AD%E6%89%A7%E8%A1%8C%E9%A1%BA%E5%BA%8F%E8%AF%A5%E6%80%8E)
关于C语言中优先级及括号的问题#include int main(void){int a = 1;int b = 10;a = a + b - (b = a);printf("a = %d\nb = %d\n",a,b);return 0;}这样能实现2个数的交换,那么在语句a = a + b - (b = a)这个语句中执行顺序该怎
关于C语言中优先级及括号的问题
#include
int main(void)
{
int a = 1;
int b = 10;
a = a + b - (b = a);
printf("a = %d\nb = %d\n",a,b);
return 0;
}
这样能实现2个数的交换,那么在语句a = a + b - (b = a)这个语句中执行顺序该怎么解释?
是先执行(b = a)这句话吗?如果是先执行这句的话,根本不能实现交换啊?还是说a = a + b - (b = a)是从左往右执行,遇到括号了再执行括号里面的?
在带有括号的表达式里面到底是先计算括号里面的表达式还是从左往右顺序执行,遇到括号了再执行括号里面的啊
关于C语言中优先级及括号的问题#include int main(void){int a = 1;int b = 10;a = a + b - (b = a);printf("a = %d\nb = %d\n",a,b);return 0;}这样能实现2个数的交换,那么在语句a = a + b - (b = a)这个语句中执行顺序该怎
第一,不要用这种方法实现两数的交换,这种做法根本没有考虑溢出的问题
第二,a = a + b - (b = a),这个表达式本身就是一个错误的表达式,变量的值依赖于确定的求值顺序,而C本身没有强制规定表达式求值顺序,这是一个不确定的行为