为了账号安全,请及时绑定邮箱和手机立即绑定

【学习打卡】第4天 物联网/嵌入式工程师 第一周

标签:
C C++ C#

课程名称: 物联网/嵌入式工程师

课程章节: 第一周 计算机基础和C语言

主讲老师: 大白老师

课程内容:

今天学习了赋值复合运算符,逗号运算符,三目运算符以及运算符的优先级。

课程收获:

今天算是把运算符学完了,马上就开始第二周的课程了,第二周的课程是C语言的进阶,控制语句,数组,指针,以及函数。期待一下能学到新的知识吧^_^.
开始今天的总结:
赋值符合运算符
比较简单,a+=b相当于a=a+b,a*=b相当于a=a*b,就这样,你学会了举一反三。
逗号运算符与三目运算符

ret = 表达式1,表达式2,表达式3,....,表达式n

功能:按顺序执行表达式,并将表达式n的结果,作为整个表达式的值赋值给ret。
在所有的运算符中,逗号表达式的优先级最低。
a=1,b=2
ret=(a-b,a+b)
结果就是ret=3

 ret = 表达式1 ?  表达式2 :  表达式3 ;

功能:判断表达式1是否为真,若是为真则执行表达式2,并把表达式2最终的结果复制给ret,
否则,就执行表达式3,并把表达式3最终的结果赋值给ret。
关于这个三目运算符呢,刚开始学我有疑问,能不能
a>b?表达式1: ;
事实证明不可以。为了保证本文的准确性以及可信性,我仔细查阅了一下三目运算符,其实相当于

if(条件)
{
	return 表达式;
}else
{
	return 表达式;
}

笔者有些东西学的不扎实,所以刚才犯了个错误找了半天才知道为什么
先上代码

int ret=0,a=2.b=1;
a<b?ret=a:ret=b;
printf("%d\n",ret);

然后报错了,[Error] lvalue required as left operand of assignment。
如果有小伙伴也犯这类错误就要好好记牢了,条件运算符(包括三目运算符)的优先级大于赋值运算符所以这样才是对的:

int ret=0,a=2.b=1;
a<b?(ret=a):(ret=b);
printf("%d\n",ret);

运算符优先级
不知道大家关于这点是不是头疼呢,在刚接触时感觉要记很多,其实不然。
运算符优先级我个人建议就是记常见的,算术大于逻辑这些,如果遇到的话就查阅资料,跟其他同学聊天时我询问了一下他们的意见,他们说如果真遇到优先级,就给想先算的加上小括号,也是个很好的做法。
今天的课后作业
图片描述

下面是答案

最后就是每日一句激励自己以及你我的话:
所谓努力,就是主动而有目的的活动。

点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消