2-C语言的运算符和表达式

语句:A=B;

表达式:A=B

两者区别就是有没又分号

运算符

1.算术运算符
  • + (加法)

  • - (减法)

  • * (乘法)

  • / (除法)

  • % (取模,即求余数)

  • ++ (自增,使变量值增加1)

  • -- (自减,使变量值减少1)

注意:整数相除结果会是整数,如果想要得到一个实型(浮点型)可以在最前面*1.0进行类型转换。

注意:%(取余)符号,在C语言中要求两个操作数都是整数,并且不能对0进行取余操作。

常见错误

  1. 除以零:尝试除以零会导致运行时错误。

  2. 整数除法:当两个整数相除时,结果也是整数,小数部分会被截断。

  3. 自增自减位置i++++i 的区别,前者是后增,后者是前增。

2.逻辑运算符

逻辑运算符用于表示程序中的逻辑关系,主要有以下几种:

  • ! (逻辑非):用来表示逻辑上的取反。

    • 用法示例:!(1 > 0) // 表示对表达式的结果进行取反操作。如果表达式为真,则取反为假;如果为假,则取反为真。
  • && (逻辑与):用来表示逻辑上的"并且"。

    • 用法示例:1 > 0 && 1 > 2 // 表示两个式子中只要有一个式子逻辑不成立,那么整个表达式就为假。
  • || (逻辑或):用来表示逻辑上的"或者"。

    • 用法示例:1 > 0 || 2 > 0 // 表示两个式子中只要有一个式子的逻辑成立,那么整个表达式就为真。

注意事项

  • 惰性运算(Short-circuit evaluation):在逻辑运算中,如果可以通过部分表达式提前知道整个表达式的结果,那么剩余的表达式就不会再进行计算。这种操作称为惰性运算。

    • 逻辑或(||):如果第一个表达式为真,则不再计算第二个表达式,因为整个表达式的结果已经确定为真。

    • 逻辑与(&&):如果第一个表达式为假,则不再计算第二个表达式,因为整个表达式的结果已经确定为假。

这种特性在编写程序时非常有用,特别是当你需要避免在已知结果的情况下执行可能引发错误的代码时。例如,你可以在访问对象成员之前检查对象是否为null,从而避免空指针异常。

前缀自增和后缀自增的求值顺序在标准中有明确的规定,前缀自增会先于后缀自增执行。

cpp 复制代码
#include<stdio.h>
int main(){
    int i = 2;
    printf("%d\n",i++ + ++i);//6
    return 0;
}

//1.先执行++i->i变成3 i=再执行i++ 但是他是先计算,再自增,所以先执行**i++ + 3,**所以i++整体为3,所以结果是6.

3.位运算符

tips:判断一个数的二进制最低位是否为1

4.赋值运算符
5.复合赋值远算符
6.条件远算符

tips:C语言中怎么区分或者说辨别出表达式这种东西?

  1. 包含运算符 :如 +-*/ 等。

  2. 函数调用 :如 sqrt(9)

  3. 赋值语句 :如 a = 3

  4. 括号内的代码 :如 (2 + 2)

  5. 条件运算符 :如 a > b ? x : y

语句:A=B;

表达式:A=B

两者区别就是有没又分号

7.逗号运算符
8.指针运算符
9.自增运算符

......

其他
相关推荐
zihao_tom10 分钟前
Go环境搭建(vscode调试)
开发语言·vscode·golang
IT方大同20 分钟前
(实时操作系统)线程管理
c语言·开发语言·嵌入式硬件
阿kun要赚马内35 分钟前
Python面向对象:@property装饰器
开发语言·前端·python
sunwenjian88637 分钟前
Java进阶--IO流
java·开发语言
wildlily842738 分钟前
C++ Primer 第5版章节题 第十三章(二)
开发语言·c++
意法半导体STM321 小时前
【官方原创】STM32H7双核芯片通过 STlink连接失败问题分析 LAT1654
开发语言·前端·javascript·stm32·单片机·嵌入式硬件
深蓝海拓1 小时前
使用@property将类方法包装为属性
开发语言·python
xiaoye-duck1 小时前
【C++:unordered_set和unordered_map】 深度解析:使用、差异、性能与场景选择
开发语言·c++·stl
zjjsctcdl1 小时前
java与mysql连接 使用mysql-connector-java连接msql
java·开发语言·mysql
格林威1 小时前
Baumer相机锂电池极片裁切毛刺检测:防止内部短路的 5 个核心方法,附 OpenCV+Halcon 实战代码!
开发语言·人工智能·数码相机·opencv·计算机视觉·c#·视觉检测