首页 > 其他 > 详细

9_三目运算符和逗号表达式

时间:2020-02-26 15:28:14      阅读:68      评论:0      收藏:0      [点我收藏+]

技术分享图片

 

 

 自然语言读 A?B:C

A成立吗?成立的话执行B,否则执行C

 

逗号表达式:

技术分享图片

 

 

 

例题1:

main()
{
int x,y,z;
x=1;
y=1;
z=x++,y++,++y;
printf("%d,%d,%d\n",x,y,z);
}

 

这里先有赋值运算符,再有逗号运算符, 赋值运算符优先

所以 实际上是 (z=x++),(y++,++y)

z=x , x = x +1 , y  = y+1 , y = y + 1

y从1开始自加两次,所以y是3

z=x++ 是后自增,后面才自增的, 先z = x

答案 x= 2 y =3 z =1

 

 

例题2:  赋值结合逗号运算符,赋值优先

若t为double类型,表达式t=1,t+5  t的值是
 
(t=1),(t+5)  其中t+5不会改变t的值, t+=5才会改变t的值 

相当于 t = 1 , t+5 ,答案是 t = 1

技术分享图片

 

技术分享图片

 

 逗号运算符,每个逗号之后是一句独立的语句

t++就是t++,和前面t=1没有关系

不是t=t++

而是(t=1),t++;

 

 

例题3:逗号表达式的值为

    若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是

      逗号表达式最后的值取最后一个的值,即y=1+1=2,最后一个值为2

 

9_三目运算符和逗号表达式

原文:https://www.cnblogs.com/chrr/p/12367094.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!