int a,b; b=(a=2+3,a*4),a+5;
b=(a=2+3,a*4)这一部分我懂,但之后的逗号“,”和“a+5”有什么作用?最后结果是a为5,b为20...
b=(a=2+3,a*4) 这一部分我懂,但之后的逗号“,”和“a+5” 有什么作用?
最后结果是 a为5,b为20 展开
最后结果是 a为5,b为20 展开
2个回答
展开全部
这是C的一种运算符,逗号表达式。b的值为括号内的第2个值,b=a*4=5*4=20,既然你理解这个,那后边的是一个道理。
还不明白可以去这:http://baike.baidu.com/view/2393109.htm
还不明白可以去这:http://baike.baidu.com/view/2393109.htm
展开全部
逗号运算符 a+5返回表达式的结果
在C/C++语言中,多个表达式可以用逗号分开,其中用逗号分开的表达式的值分别结算,但整个表达式的值是最后一个表达式的值。
“b=(a=2+3,a*4),a+5;”它返回a+5的值
在C/C++语言中,多个表达式可以用逗号分开,其中用逗号分开的表达式的值分别结算,但整个表达式的值是最后一个表达式的值。
“b=(a=2+3,a*4),a+5;”它返回a+5的值
追问
整个表达式确实是最后一个表达式的值,但是 是括号里的最后一个"a*4"
所以 最后结果 a=5,b=20~ ~
追答
a=5,b=20没错
a=2+3,a*4这个返回的是20,所以b=(a=2+3,a*4)=20
b=(a=2+3,a*4),a+5;这个返回的是25,
假设有int a,b,c;c=(b=(a=2+3,a*4),a+5);那么就很清楚了吧?
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询