一.转义字符

字符形式  含义
\n       换行,将当前位置移到下一行开头
\t       水平制表(跳到下一个Tab位置)
\b       退格,将当前位置移到前一列 
\r       回车,将当前位置移到本行开头
\f       换页,将当前位置移到下页开头

\\        代表一个反斜杠字符 "\"
\'      代表一个单引号(撇号)字符
\"      代表一个双引号字符

\ddd    1到3位八进制数所代表的字符
\xhh    1到2位十六进制数所代表的字符
  

二.运算符 

1.算术运算

1.加法 +

eg:3+5、+3

2.减法 - 

eg:5-2、-3

3.乘法 *

eg:3 * 5

4.除法 /

eg:5/3

两个整型数相除 ,最终结果相当于是整除的效果。注意:被除数不能为0。

5.求余 %

两个整数相除的结果为整数,如 5/3 的结果值为 1,舍去小数部分。

1.对一个整形常量N求余,其范围是【0~n-1】

2.N%n ,其中n不能为0

6.自增++自减--

作用是使变量的值增 1 或减 1

例如: ++i, --i   //先加后用

            i++,i--   //先用后加
注意:
        1. 先用后加 还是 先加后用 ,必须是 ++ 参与到别的运算中
        2. 浮点类型 也可以 自增 自减 
        3. 自增、自减 运算数 必须是左值  
        4. 表达式 i++ , ++i            
           i++  //先用(表达式的结果) 后加 i
           ++i  //先加i,后用(表达式的结果)

7.运算中的数据类型转换

 表达式都是有结果有数据类型的,例如4/2的结果为2,那5/2的结果呢?结果是2,因为2和5都是整形型常量所以相除的结果也是整形常量。那如果不同数据类型的两个常量相除,它的结果又是什么数据类型呢?

隐式类型转换 :在进行运算时,不同类型的数据要先转换成同一类型,然后进行运算。如字符数据 必定先转换为整数,short 型转换为 int 型,float 型数据在运算 高 时一律先转换成双精度型,以提高运算精度(即使是两个 float 型数据相加,也先都化成 double 型,然后再相加)。纵向的箭头表示当运算对象为不同类型时转换的方向。 例如 int 型与 double 型数据进行运算,先将 int 型的数据转换 低 成 double 型,然后在两个同类型(double 型)数据间进行运算, 结果为 double 型。
      

强制类型转换: 

eg:(类型)运算数
   运算效果:
       将运算数的类型转换为()中指定的类型 
   注意:
      强转不会影响运算数本身 ,本质上是个运算结果 

8.贪心原则

i+++i ,根据贪心原则,此表达式应从左到右逐个扫描, 将扫描到的字符尽可能多的结合成c语言的运算符,所以其运算顺序应是(i++) + i

i ++ ++ + i,运算顺序应是((i++)++) + i


下面为谭浩强作者《C程序设计》第三版中的内容

2.赋值运算

1. 赋值运算符

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

  左值=值
  运算:
    将右边的值,给到左边的左值空间中 
    左值,充当运算的结果值 
   a=(b=(c=1)) 


 2. 类型转换

(1) 将浮点型数据(包括单、双精度)赋给整型变量时,舍弃浮点数的小数部分。

(2) 将整型数据赋给单、双精度变量时,数值不变,但以浮点数形式存储到变量中。

(3) 将一个 double 型数据赋给 float 变量时,截取其前面 7 位有效数字,存放到 float 变量的存储单元(4 个字节)中。但应注意数值范围不能溢出。

(4) 字符型数据赋给整型变量时,由于字符只占 l 个字节,而整型变量占 2 个字节, 因此将字符数据(8 个二进制位)放到整型变量存储单元的低 8位中。

(5) 将一个 int、short、long 型数据赋给一个 char 型变量时,只将其低 8 位原封不动地送到 char型变扯 (即截断)。

(6) 将带符号的整型数据(int 型)赋给 long 型变量时,要进行符号扩展,将整型数的 16 位送到 long 型低 16 位中,如果 int 型数据为正值(符号位为 0)'则 long 型变量的高 16 位补0;如果int 型变量为负值(符号位为1)则 long 型变量的高 16 位补 1,以保持数值不 改变。反之,若将一个 long 型数据赋给一个 int 型变量,只 将 long 型数据中低 16 位原封不动地送到整型变量(即截 断)。

(7) 将 unsigned int 型数据赋给 long int 型变量时,不存在符号扩展问题,只需将高 位补 0 即可。将 unsigned 型 变量的内容原样送到非 unsigned 型变量中,但如果数据范围超过相应整型的范围,则会 出现数据错误。

(8) 将非 unsigned 型数据赋值给长度相同的 unsigned 型变量,也是原样赋值(连原 有的符号位也作为数值一起传送)。


3.逗号运算 

逗号表达式,又称为“顺序求值运算符”。逗号表达式的一般形式为:表达式1,表达式2,表达式3,...,表达式n 。整个逗号表达式的值为最后一个表达式n的结果。其实,逗号表达式无非是把若干个表达式”串联”起来。在许多情况下,使用逗号表达式的目的只是想分别得到各个表达式的值。

Logo

openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。

更多推荐