嵌入式第三天(运算符)

今天还是老样子,先继续昨天的学习继续补充一些知识。23092cabdc26451ab889f7392eacebd5.jpeg

转义字符的使用

edb16d9ecc6446eda9b93a8b5560a636.png

接下来就是今天的正题了

算术运算符

1.类型

+

-

*

/

%        tps:只能运算整型,结果也是整型

++         ++a vs a++  那个效率高?++a

--

 

2.优先级

在 C 语言中,运算符的优先级大致如下:

1. 括号  ()  :具有最高优先级,用于强制改变运算的顺序。

2. 单目运算符:包括逻辑非  !  、按位取反  ~  、自增  ++  、自减  --  、正号  +  、负号  -  、指针  *  、取地址  &  。

3. 乘除和取余: * (乘法)、 / (除法)、 % (取余)。

4. 加减: + (加法)、 - (减法)。

5. 移位操作: << (左移)、 >> (右移)。

6. 关系运算符: < (小于)、 > (大于)、 <= (小于等于)、 >= (大于等于)。

7. 相等性运算符: == (等于)、 != (不等于)。

8. 按位与  &  。

9. 按位异或  ^  。

10. 按位或  |  。

11. 逻辑与  &&  。

12. 逻辑或  ||  。

13. 条件运算符  ? :  。

14. 赋值运算符  =  、 +=  、 -=  、 *=  、 /=  等。

15.逗号运算符,

在 C 语言编程中,为了避免因运算符优先级导致的误解和错误,复杂的表达式可以适当使用括号来明确运算顺序。您是在 C 语言的学习过程中对这部分内容有疑问吗?

3.结合性

左值与右值

可定位的左---变量

不可定位的右---常量

贪心法则(i+++++i)从左向右=》((i++)++)+i,i++是右值所以不能编译成功

不建议写法printf("%d",i,i++); //至右向左

3.精度默认转换(隐式类型转换)

fe6e4f65bb914fc6827be4793d26ff1a.png

强制运行转换

(转换类型)转换目标

赋值运算

在 C 语言中,赋值运算使用“=”符号来完成。

 

基本的赋值运算形式为:

变量 = 表达式;

例如:

int a = 5; // 直接将整数 5 赋值给变量 a

int b;

b = a + 3; // 将变量 a 的值加上 3 的结果赋值给变量 b

赋值运算符还可以与其他运算符结合使用,形成复合赋值运算符,例如:

a += 2; // 等价于 a = a + 2

b -= 1; // 等价于 b = b - 1

c *= 4; // 等价于 c = c * 4

d /= 2; // 等价于 d = d / 2

e %= 3; // 等价于 e = e % 3

在赋值运算中,需要注意数据类型的匹配和可能出现的类型转换问题。

在 C 语言中,赋值运算主要有以下规则:

1. 类型一致性:通常情况下,赋值运算符两边的数据类型应该是兼容的。如果类型不兼容,C 语言可能会进行隐式类型转换,但这可能导致数据丢失或不准确的结果。(高位截断(长类型给短类型),精度丢失(高精度给低精度),符号位扩展(短类型给长类型,看最高位1补10补0))

2. 右值求值:在执行赋值操作时,先计算赋值号右边表达式的值,然后将其赋给左边的变量。

3. 变量初始化:未初始化的变量进行赋值操作是合法的,但使用未初始化的变量可能会导致未定义的行为。

4. 指针赋值:对于指针变量,赋值操作是将一个地址值赋给指针。

5. 数组和结构体赋值:对于数组,不能直接将一个数组整体赋值给另一个数组,但可以逐个元素进行赋值。对于结构体,可以通过结构体变量整体赋值的方式进行。

6. 复合赋值运算符:如  += 、 -=  等,其计算顺序是先进行运算,再进行赋值。

7. 常量不能被赋值:被  const  修饰的常量不能被重新赋值。

8. 赋值表达式的值:赋值表达式本身也有值,其值就是赋给左值的那个值。

19e921492795485aaa3c28d1ca40a6d5.jpeg

逗号运算

在 C 语言中,逗号运算符( , )用于将多个表达式连接成一个表达式。

 

逗号运算符的主要特点和规则如下:

 

1. 逗号运算符会从左到右依次计算每个表达式的值。

2. 整个逗号表达式的值是最后一个表达式的值。

例如:

int a = 10, b = 20, c;

c = (a++, b++, a + b);

在上述例子中,首先计算  a++  ,此时  a  的值变为  11  ;然后计算  b++  , b  的值变为  21  ;最后计算  a + b  ,其结果为  32  ,并将  32  赋值给  c  。

逗号运算符常用于  for  循环的控制表达式中,以实现多个变量的更新。

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值