c语言 看不懂这句话是什么意思 10

 我来答
金色潜鸟
2018-04-24 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5711万
展开全部
先搞懂: 一句 语句 的 范围 有多大,例如:
int a=2,b=4,c=6,x,y;
y = (x=a+b),(b+c);
看清楚了: 2个分号之间的内容是 一句语句。
也就是说 y = (x=a+b),(b+c); 这是一句完整的语句。
注意,里面含有逗号。 这里的逗号 把语句分解成2个部分。
一个是 y = (x=a+b), 另一个是 (b+c);
与 y 计算有关的是 y = (x=a+b), 它是 赋值表达式,把 表达式 (x=a+b) 的值 赋给 y.
问题归结为 (x=a+b) 表达式的值是多少? 这个表达式 语法上也叫赋值表达式,它是把 a+b 的值 赋给 x, 同时 也得到 (x=a+b) 表达式的值 就等于a+b。
已知 a=2,b=4 , a+b 等于 6。 所以得到 x=6, y=6 的结果。
printf("y=%d x=%d",x,y); 输出 y=6 x=6。
----
逗号表达式 的 进一步的知识。如果 上面的语句是这样,多一对括号:
y = ((x=a+b),(b+c)); 这是赋值语句了,把 逗号表达式 ((x=a+b),(b+c)) 的值赋给 y。这个 逗号表达式 由两部分组成,(x=a+b) 和 (b+c),逗号表达式的值,等于最右一个表达式的值,也就是等于 b+c, 因为 b=4,c=6,所以 b+c 得 10, y 得 到 10。
printf("y=%d x=%d",y,x); 将输出 y=10 x=6。
若是 y = ((x=a+b), (b+c), a+c); 将输出 y=8 x=6。 因最右一个表达式是 a+c。
这是 c/c++语言难点之一。什么叫逗号表达式,什么叫赋值表达式,什么叫赋值语句,三者有何不同。
追问
但是y不是表达式一的值吗
百度网友052574abd
2018-04-23 · TA获得超过409个赞
知道小有建树答主
回答量:1169
采纳率:30%
帮助的人:280万
展开全部
就是出现逗号的,逗号后面的表达式才是结果,前面的不是
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
太原小辉辉
2018-04-23 · TA获得超过122个赞
知道答主
回答量:272
采纳率:8%
帮助的人:29万
展开全部
这辈子最恨理科了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式