嵌入式学习day3——运算符与表达式

一、转义字符及其作用

反斜杠"\"后面的字符转换成另外的意义。

二、字符型常量

  • ‘A'
  • '\101'--------------------转义八进制         //相当于char ch=0101
  • '\X41'----------------------转义十六进制   //相当于char ch=0x41

三、各类数值型数据之间的混合运算

1、转换规则:

  • 在进行运算时,不同类型的数据要先转换成同一类型,然后进行运算。转换的规则如图所示。

从右向左  必转
从下向上  低精度 和 高精度 混合运算时,低精度往高精度转(可跳级转换)

四、算数运算符与算数表达式

1、运算符和结合性

优先级高 并不一定决定先算,但是一定是先结合 。

单双目指的是运算的对象的个数。

2、强制类型转换运算符

1、(类型名) 运算数

(double)a ------(将 a转换成double类型);

(int)(x+y)--------- (将 x+y 的值转换成整型) ;

(类型名)(表达式) 注意,表达式应该用括号括起来。如果写成 (int)x+y 则只将 x转换成整型,然后与 y相加。

注意:在强制类型转换时,得到一个所需类型的中间变量,原来变量的类型 未发生变化。

3、自增自减运算符

 1、
    ++    --- 自增   表示一次增加1  
    int a = 1;
    a++   //后置加加  --- 先用(表达式的结果) 后加(让i自增)
    ++a   //前置加加  --- 先加(让i自增) 后用(表达式的结果) 

2、

  --   自减  表示一次减少1

 int a=1;

a--   // 先用(表达式的结果)后减(让i自减)

--a    //先减(让i自减) 后用(表达式的结果) 

3、注意事项

  • 自增运算符(++)和自减运算符( - - )只能用于变量,而不能用于常量或表达式,如 5++或(a+b) ++都是不合法的。 
  • ++和--的结合方向是“自右至左“。
  • . a++ ++a如果单独使用,效果上没有区别,先用后加 或 先加后用,是参与到别的运算中时,才发挥作用。
  • 浮点类型也可以自增自减。

4、赋值表达式

1、左值

int a=10

  • 能放在左边的值,称为左值(变量)。
  • 左值能够取地址,即可定位。
2、右值

int a=10;int a=b+c;

  • 能放在右边的值,成为右值(常量或者表达式)
  • 右值不能够取地址,即不可定位。      

注意:

如“a=5”是一个赋值表达式。

对赋值表达式求解的过程是:先求赋值运算符右侧的“表达式”的值,然后赋给赋值运算符左侧的变量。一个表达式应该有一个值,例如,赋值表达式“a=3x5”的值为 15,执行表达式后,变量a的值也是 15。赋值运算符左侧的标识符称为“左值”(left value,简写为lvalue)。并不是任何对象都可以作为左值的,变量可以作为左值,而表达式 a+b就不能作为左值,常变量也不能作为左值,因为常变量不能被赋值。出现在赋值运算符右侧的表达式称为“右值”(right value,简写为 rvalue)。显然左值也可以出现在赋值运算符右侧,因而凡是左值都可以作为右值。例如:
int a=3,b,c;
b=a;         /*b是左值 */
c=b;        /*b也是右值 */
 

5、算数表达式

1、定义

用算术运算符和括号将运算对象(也称操作数)连接起来的、符合C语法规则的式子,称为 C算术表达式。运算对象包括常量、变量、函数等。

简言之就是,由运算符和运算数构成的字符序列,例如:a* b/c-1.5+'a'

注意:  表达式都是有值的 ,表达式都是有类型的 。

五、赋值运算符与赋值表达式

1、赋值运算符

赋值符号"="就是赋值运算符,它的作用是将一个数据赋给一个变量。如"a=3"的 作用是执行一次赋值操作(或称赋值运算)。把常量3赋给变量a。也可以将一个表达式 的值赋给一个变量。

2、类型转换

如果赋值运算符两侧的类型不一致,但都是数值型或字符型时,在赋值时要进行类型转换。

  • 高精度 => 低精度 

     double/float => 整型  ==> 精度丢失

  • 低精度 => 高精度 ==>补小数,数值不改变。

  •   长类型=>短类型   //高位截断 

                 //int => short 
                 //long => int 
                 //short => char 

  • 短类型=>长类型

         无符号短类型 =>长类型  //高位补0
         有符号短类型 =>长类型  //符号位扩展 (高位补符号位)        

3、复合赋值运算符

在赋值符"="之前加上其他运算符,可以构成复合的运算符。如果在"="前加一 个“十”运算符就成了复合运算符“十="。例如,可以有: a+=3   ,等价于 a=a+3。

六、逗号运算及逗号表达式

逗号表达式,又称为“顺序求值运算符”。

一般形式为:  表达式1,表达式2,表达式3

"(a,b,c)"是一个逗号表达式,它的值等于 c 的值。括号内的逗号不是参数间的分隔 符,而是逗号运算符。括号中的内容是一个整体,作为 print£ 函数的一个参数

补充

形参与实参是什么,他们的作用与联系是什么

num%100  //0~99 随机输出后50个数

int rand(void);
  void srand(unsigned int seed);  //函数原型 --- 
  //void  --- 这个函数 返回值的类型 
  //srand --- 函数名字 
  //unsigned int seed --- 形式参数 //变量 --- 形参

 srand(5); //5 实际参数 ---实参 
  rand(); //seed = 1 ---> 一系列的随机数 0 ~ RAND_MAX
  seed = 2 //rand ---新的一系列的随机数  

time_t time(time_t *tloc); //时间秒数 
  time(NULL);//返回值就是获的到的秒数

  • 11
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值