C语言中a=b=0;是否正确?

 我来答
博尔思拓
2019-02-26 · 知识创造财富,科技改变世界。
博尔思拓
采纳数:217 获赞数:1185

向TA提问 私信TA
展开全部
首先你要明白什么是表达式,还有变量。
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语言很多式子都是简化的,这样虽然可以节省代码,却比较让人糊涂。
以脸为证
推荐于2018-04-30 · TA获得超过736个赞
知道小有建树答主
回答量:294
采纳率:100%
帮助的人:103万
展开全部
正确
赋值运算的运算顺序是自右向左
所以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++,没问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友ac476da405
2010-08-16 · TA获得超过5678个赞
知道大有可为答主
回答量:4625
采纳率:0%
帮助的人:6672万
展开全部
正确的呀,符值0于B,再将B的值符于A!
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
好红客
2010-08-16 · TA获得超过216个赞
知道小有建树答主
回答量:148
采纳率:0%
帮助的人:0
展开全部
正确!赋值运算符 ' = ' 的结合性是自右向左。

所以先将 0 赋给 b , b = 0 ;

再将 b 的值 0 赋给 a , a = 0。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友555fb9cd7
2010-08-16
知道答主
回答量:15
采纳率:0%
帮助的人:8.7万
展开全部
这个是没有问题的,结果和b=0; a=0一样的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式