c语言:赋值运算符与赋值表达式

任务代码:

#include <stdio.h>
int main ()
{
int  a 
printf("%d",(a=5));
return 0;
}


执行情况:


知识总结:

运算符的优先级:

优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。表达式的结合次序取决于表达式中各种运算符的优先级。优先级高的运算符先结合,优先级低的运算符后结合,同一行中的运算符的优先级相同。



赋值表达式:<变量><赋值运算符><表达式>;

注意:左值常为变量,而不能是常量;例如a=3.14左值变量是右值赋值;


赋值过程中的类型转换:


(特别注意:浮点数赋值给int数的时候,疆浮点数社区小数部分,例如上图a=4,但是不是四舍五入);


复合数值运算符:


c语言中大力提倡使用复合运算符;


赋值表达式及其值:

赋值语句:

(之所已成为语句就是要有;)

例如:a=3=2;

          c+=(3*2);

赋值表达式:

(只是单一的表达式,并没有对应相应的;)

例如:a=3-2

         c+=(3*2)

赋值表达式的值:

赋值表达式计算后左值的值;

应用:

#include <stdio.h>

int main ()

{

int  a 

printf("%d",(a=5));

return 0;

}

其中a=5就是赋值表达式,%d所寄存的值就是赋值表达式(a=5)的值;

例题:赋值表达式的求值


对于printf("%d",(j=i++));来说i++是i自增前的值赋值给j之后再++,所以赋值表达式的值就是i 的原始值;

对于(a=3*5)=4*3来说,看似运算的左值应该是变量,但是题目给的是常量,看似无意义,但是赋值表达式的值是(左值是15),然后右值将12赋值给a所以最终结果为12;

对于最后一个要注意的就是运算结合方式是自右向左;结果-264;


心得体会:

  • 20
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值