int a=9 b=5 b=(a=4)/(b=a) 为什么最后算出来的答案是1?
来源:百度知道 编辑:UC知道 时间:2024/05/18 03:42:49
a=4这是一个表达式,b=a这个也是
你的b=(a=4)/(b=a)实际上是这2个表达式的值相除。
而这2个表达式,如果赋值操作都成功的话,值就为真,也就是1
所以最后结果是1
b=(a=4)/(b=a) 中
a=4)和(b=a)都是赋值运算,他们的值都等于1,所以b的值是1
主要是搞明白各运算符的优先级就行了,括号最高,然后是除法,最后是赋值。先算a=4,又把a赋值给b,再算a/b,结果值为1又赋给了b。搞明白运算符的优先级对读程序是很必要的。
呃。。。误导太严重了
赋值操作的返回值就是所赋的值
二楼和三楼
试试
int i;
while ((i=2)-1);吧
b=4/4=1
和具体编译器有关(求值顺序)
int a=5,b; b=++a*--a;
int a,b=5; a=(++b)+(++b)+(++b)+(++b);
void a(int a,int b=0)的含义?
已知int a=1;int b;b=(++a)+(++a)+(++a);为什么b=10?
int a=b;与int a,b;a=b;的区别
unsigned int a=2;int b = -3;
CSum(int a=0,int b=0){nSum+=a+b}
int *a=b与int*a=&b有什么不同
const int* a = &b 和 const* int a = &b的区别
C语言中 int a=9,b=5; 那么表达式b=(a=4)/(b=a)的值为什么是1?