逗号表达式(a=3*5,a*4).a+5的值为?
3个回答
展开全部
(a=3*5,a*4).a+5
应该是
(a=3*5,a*4),a+5 吧
逗号表达式注意两个基本知识:
1. 逗号表达式的运算顺序是从左向右运算
2. 逗号表达式的值取逗号中最右表达式的值
现在看(a=3*5,a*4),a+5这个逗号表达式,
首先对于(a=3*5,a*4)和a+5来说,按照从左向右运算先计算(a=3*5,a*4)
(a=3*5,a*4)
这个逗号表达式从左向右运算先计算a=3*5,这是个赋值语句,处理a=3*5=15
再计算a*4,此时a=15,所以a*4=60,但是注意这个表达式并没有对a赋值,仅仅是一个乘法运算
根据逗号表达式的值取逗号中最右表达式的值的原则,(a=3*5,a*4)的值为60
再看a+5,
之前运算(a=3*5,a*4)时,a已经被赋值为15,所以这里a+5=15+5=20
所以a+5这个表达式的值为20
再根据逗号表达式的值取逗号中最右表达式的值的原则,
表达式(a=3*5,a*4),a+5 的值即为a+5的值,也就等于20了
应该是
(a=3*5,a*4),a+5 吧
逗号表达式注意两个基本知识:
1. 逗号表达式的运算顺序是从左向右运算
2. 逗号表达式的值取逗号中最右表达式的值
现在看(a=3*5,a*4),a+5这个逗号表达式,
首先对于(a=3*5,a*4)和a+5来说,按照从左向右运算先计算(a=3*5,a*4)
(a=3*5,a*4)
这个逗号表达式从左向右运算先计算a=3*5,这是个赋值语句,处理a=3*5=15
再计算a*4,此时a=15,所以a*4=60,但是注意这个表达式并没有对a赋值,仅仅是一个乘法运算
根据逗号表达式的值取逗号中最右表达式的值的原则,(a=3*5,a*4)的值为60
再看a+5,
之前运算(a=3*5,a*4)时,a已经被赋值为15,所以这里a+5=15+5=20
所以a+5这个表达式的值为20
再根据逗号表达式的值取逗号中最右表达式的值的原则,
表达式(a=3*5,a*4),a+5 的值即为a+5的值,也就等于20了
展开全部
逗号表达式
a=2*6,a*3,a+5
的值:
int
a;
int
s;
s
=
(a=2*6,a*3,a+5);
右边小括号里的是逗号表达式,它分成3个表达式:
(1)a=2*6,
(2)a*3,
(3)a+5
计算顺序是
(1)
(2)
(3);
算毕,把
(3)
“最后一个表达式的结果”
作为
“逗号表达式
的
结果”
给出。
(1)
式,叫“赋值表达式”
--
c
语言的叫法!
算得
a=12
(2)
式,
表达式
的
结果
是
a*3
,
a
的当前值
是
12
,
表达式
的
结果
是
36,
a自身值
是
12没变
(3)式,表达式
的
结果
是
a+5,上一步说了,
a自身值
是
12没变,所以这里
a+5
=
12
+
5
=
17
“最后一个表达式的结果”
作为
“逗号表达式
的
结果”
给出
,
最终给出
17
printf("%d
",s);
打印出
17。
a=2*6,a*3,a+5
的值:
int
a;
int
s;
s
=
(a=2*6,a*3,a+5);
右边小括号里的是逗号表达式,它分成3个表达式:
(1)a=2*6,
(2)a*3,
(3)a+5
计算顺序是
(1)
(2)
(3);
算毕,把
(3)
“最后一个表达式的结果”
作为
“逗号表达式
的
结果”
给出。
(1)
式,叫“赋值表达式”
--
c
语言的叫法!
算得
a=12
(2)
式,
表达式
的
结果
是
a*3
,
a
的当前值
是
12
,
表达式
的
结果
是
36,
a自身值
是
12没变
(3)式,表达式
的
结果
是
a+5,上一步说了,
a自身值
是
12没变,所以这里
a+5
=
12
+
5
=
17
“最后一个表达式的结果”
作为
“逗号表达式
的
结果”
给出
,
最终给出
17
printf("%d
",s);
打印出
17。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
20
(1)a=3*5->a为15
(2)a*4=60->括号内的逗号表达式为60
(3)逗号表达式60,20的值,应该是多少呢?
(1)a=3*5->a为15
(2)a*4=60->括号内的逗号表达式为60
(3)逗号表达式60,20的值,应该是多少呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询