逗号表达式

案例一:

#include "stdio.h"
void 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 = 2,
那我可要告诉你:错误;为啥错了?因为本例中z=x++含有赋值运算符,其优先级高于逗号逗号运算符,也即相当于这样 (z=x++),y++,++y;
运行结果:
在这里插入图片描述
解析:首先执行(z=x++) => z=1, x=2
然后继续执行y++, ++y => y=3


**此时若再次变化成这样:**	z= (x++,y++,++y);				//此时逗号表达式整体加了括号
						printf("%d,%d,%d\n",x,y,z);

此时运行结果:
在这里插入图片描述


案例二:

void main()
{
	int t;
	printf("t=%d\n",(t=1,t+5,t++));		
}

自己分析一把,答案是1!
有人说,我认为是6,自左至右计算后的t是6!
是吗? => 错误;
原因:逗号表达式中的t+5并不会影响t的值啊!
经过t=1,t+5后t的值仍然是1,经历t++时,注意此时是先赋值,然后再自增,所以逗号表达式的值是1;
运行结果:
在这里插入图片描述**

案例三:

**

void main(){
	int a,b;
	b=(a=1,a+1,a++);
	printf("b= %d\n",b);
}  

和案例二差不多,自己分析一把,在评论区可写下自己的解题过程,答案是1。
在这里插入图片描述

最后总结一下:

1. 逗号表达式结构:
表达式1,表达式2,表达式3,… ,表达式n
2. 逗号表达式的要领:
(1) 逗号表达式的运算过程为:【从左往右】逐个计算表达式。
(2) 逗号表达式作为一个整体,【它的值】为最后一个表达式(也即表达式n)的值。
(3) 逗号运算符的优先级别在所有运算符中最低。
(4)往往将逗号表达式与赋值运算符结合起来考查!

  • 20
    点赞
  • 83
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@十三阿哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值