C语言中a=b=0;是否正确?
发布网友
发布时间:2022-05-30 04:14
我来回答
共5个回答
热心网友
时间:2023-10-08 21:03
首先你要明白什么是表达式,还有变量。
A是一个变量。
A++,++A都是A加了1.
比如A原来是1,执行了A++或++A后,A变量的值就是2了
至于A++和++A的区别主要是在表达式上的区别。
++A是先执行了A加1后,参与表达式的计算。
A++是A先参与表达式的计算,后执行自加1.
比如:
int a,b;
a=1;//如果你想把a的值1,付给b.那么,但你又想使得a加1。你就可以这么做
b=a++;//++在a之后,先把a的值付给b,然后再本身加1 。这时候b=1,a=2了。
//如果你还不懂得话。b=a++;的意思 就是b=a;a=a+1;这两句意思
//而b=++a 就是 a=a+1;b=a;的意思
至于A++=A+A+1
好像写错了吧
是A+=A+A+1
优先级等于 A=A+(A+A+1)//A+=B 是 A=A+B 的简化
!= 不等于,是条件运算符,用来判断真假的。
比如1!=2; 表达式的值就是假,也就是0;
C语言很多式子都是简化的,这样虽然可以节省代码,却比较让人糊涂。
热心网友
时间:2023-10-08 21:03
正确
赋值运算的运算顺序是自右向左
所以a=b=0相当于a=(b=0)
‘=’左边变量a是左值,右边(b=0)是右值,所以正确
如果写成(a=b)=0;
在C++中也没错,因为在C++中赋值表达式(a=b)是左值
而在C中,如果编译器采用的是ANSI C89/ISO C90标准,则赋值表达式(a=b)不是左值,会报错
而如果是C99标准,则同C++,没问题
热心网友
时间:2023-10-08 21:04
正确的呀,符值0于B,再将B的值符于A!
热心网友
时间:2023-10-08 21:04
正确!赋值运算符 ' = ' 的结合性是自右向左。
所以先将 0 赋给 b , b = 0 ;
再将 b 的值 0 赋给 a , a = 0。
热心网友
时间:2023-10-08 21:05
这个是没有问题的,结果和b=0; a=0一样的。