c语言 看不懂这句话是什么意思 10
3个回答
展开全部
先搞懂: 一句 语句 的 范围 有多大,例如:
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++语言难点之一。什么叫逗号表达式,什么叫赋值表达式,什么叫赋值语句,三者有何不同。
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不是表达式一的值吗
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询