搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 新手上路,请老手指教,谢谢
标题:
新手上路,请老手指教,谢谢
只看楼主
Celavia
等 级:
论坛游民
帖 子:34
专家分:34
注 册:2010-3-18
结帖率:
100%
楼主
已结贴
√
问题点数:20 回复次数:4
新手上路,请老手指教,谢谢
#include<stdio.h>
main()
{
int a=5,b;b=a+a-=a*a;
printf("%d",b);
}
为什么a+a-换成a才正确,a+a-不能用吗?
搜索更多相关主题的帖子:
指教
老手
2010-03-19 22:30
陈大师
等 级:
蜘蛛侠
威 望:
1
帖 子:231
专家分:1038
注 册:2009-11-4
第
2
楼
得分:4
何必这样用捏
2010-03-19 22:49
ldg628
等 级:
火箭侠
威 望:
3
帖 子:526
专家分:3036
注 册:2009-6-23
第
3
楼
得分:6
按符号的优先级来说,应该有 b = (a+a) -= (a*a), a*a的值是赋给(a+a),但(a+a)不是变量,也不是指针,这个值不知道赋给谁,(a+a)是一个无效的左值
2010-03-19 23:08
gtl75008810
等 级:
论坛游民
帖 子:29
专家分:71
注 册:2010-2-2
第
4
楼
得分:5
楼上的已经说到位了~~
2010-03-19 23:30
helper
等 级:
论坛游民
帖 子:2
专家分:11
注 册:2010-3-19
第
5
楼
得分:5
b=a+a-=a*a;
C语言中赋值是从右到左进行的,先计算a*a,再进行计算时就有问题了,下一步计算是进行(a+a)=(a+a)-(a*a)的计算,此时把结果赋给了一个表达式,这在C语言中是非法的,你说对吧!
2010-03-19 23:43
5
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-299942-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.020016 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved