C语言运算的问题

执行语句x=(a=3,b=a--)后,x,a,b的值分别为多少?需要解释... 执行语句x=(a=3,b=a--)后,x,a,b的值分别为多少?需要解释 展开
 我来答
xuzhouliuying
高粉答主

2019-04-25 · 繁杂信息太多,你要学会辨别
知道顶级答主
回答量:5.4万
采纳率:86%
帮助的人:2.5亿
展开全部
b=a--,先将a的值赋给b,a再自减1

a=3,b=a=3,然后a自减1,a=2
x=(a=3,b=a--),右边为逗号运算符,从左至右执行各语句,并将最后一个语句的计算结果赋给x,对于本题,也就是将b的值赋给x。x=3
因此,执行语句x=(a=3,b=a--);后,x的值是3,a的值是2,b的值是3。
追问
我算的也是这个值但答案给的是,x,a,b分别为3、3、2
追答
那应该是答案错了。
一个爱学习的Coder
2019-04-25
知道答主
回答量:5
采纳率:0%
帮助的人:2.7万
展开全部
// 先执行右边括号里面的 从左向右执行,
// 第一步 执行a = 3 ==》a = 3
// 第二步 执行 b = a-- 因为--在后,所以a先赋值给b 即b=3 a在--,即a = 2
// 第三步 x的值,在此执行过程中,x取括号里面最后一次执行的值,即取b的值
// 即a = 2,b = 3,x = 3
希望我的回答能对你有所帮助!
更多追问追答
追问
我算的也是这个值但答案给的是,x,a,b分别为3、3、2
追答

这是我运行的结果

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
乌纶奇初珍
2019-04-29 · TA获得超过3784个赞
知道大有可为答主
回答量:3131
采纳率:31%
帮助的人:430万
展开全部
0/3=0
0/1=0
对于除法运算符的运算属于算术运算的范畴.
进行算术运算的数据类型一般为:整型(int),长整型(long),短整型(short),字符型(char),实型<实型又分单精度实型(float)双精度实型(double)>
1.当运算双方是同类型的话,那么结果也是一样的类型,比如如果都为整型(int),那么结果也是整型
例:2/4=0;7/2=3;-5/3=-1
采取向0取整的原则。如果双方是float型,那么结果也是float型(小数部位是7个有效数字)
2.当运算双方不是同类型的话,那么机器就会自动地进行类型转换
double<---float
|
long
|
unsigned
|
int<---char,short
横向向左的箭头是必定转换的,如果数据类型是char的话必须先转换为int型,对于纵向的越往上级别越高,也就是两个数据间低等级的类型要先转化到那个高等级的数据类型,然后再进行计算,当然结果也就是那个高等级数据类型的形式.
3.还有种强制转化计算的方式,就是为了得到自己想要的数据类型,而将一个不符合标准的数据类型进行强制转换,比如float型的数据不能进行求余运算,所以必须要将他强制转化为int型方可运算,否则出错.例:float
a=4.3;(int)a%2=1;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式