c语言常见操作符及操作符优先级

目录

  • 概述

    • [1. 算术操作符:](#1. 算术操作符:)
    • [2. 关系操作符:](#2. 关系操作符:)
    • [3. 逻辑操作符:](#3. 逻辑操作符:)
    • [4. 位操作符:](#4. 位操作符:)
  • *常见操作符优先级*

概述

C语言中有多种操作符,用于执行不同的操作。下面是一些常见的C语言操作符以及示例代码:

1. 算术操作符:

  • 加法操作符(+):用于将两个值相加。
c 复制代码
int a = 5;
int b = 3;
int result = a + b;  // result的值为8
  • 减法操作符(-):用于将第一个值减去第二个值。
c 复制代码
int a = 5;
int b = 3;
int result = a - b;  // result的值为2
  • 乘法操作符(*):用于两个值相乘。
c 复制代码
int a = 5;
int b = 3;
int result = a * b;  // result的值为15
  • 除法操作符(/):用于将第一个值除以第二个值。
c 复制代码
int a = 10;
int b = 2;
int result = a / b;  // result的值为5
  • 取余操作符(%):用于求两个值相除后的余数。
c 复制代码
int a = 10;
int b = 3;
int result = a % b;  // result的值为1

2. 关系操作符:

  • 相等操作符(==):用于判断两个值是否相等,如果相等则返回1,否则返回0。
c 复制代码
int a = 5;
int b = 3;
int result = (a == b);  // result的值为0
  • 不相等操作符(!=):用于判断两个值是否不相等,如果不相等则返回1,否则返回0。
c 复制代码
int a = 5;
int b = 3;
int result = (a != b);  // result的值为1
  • 大于操作符(>):用于判断第一个值是否大于第二个值,如果是则返回1,否则返回0。
c 复制代码
int a = 5;
int b = 3;
int result = (a > b);  // result的值为1
  • 小于操作符(<):用于判断第一个值是否小于第二个值,如果是则返回1,否则返回0。
c 复制代码
int a = 5;
int b = 3;
int result = (a < b);  // result的值为0
  • 大于等于操作符(>=):用于判断第一个值是否大于等于第二个值,如果是则返回1,否则返回0。
c 复制代码
int a = 5;
int b = 3;
int result = (a >= b);  // result的值为1
  • 小于等于操作符(<=):用于判断第一个值是否小于等于第二个值,如果是则返回1,否则返回0。
c 复制代码
int a = 5;
int b = 3;
int result = (a <= b);  // result的值为0

3. 逻辑操作符:

  • 逻辑与操作符(&&):用于判断两个条件是否同时成立,如果是则返回1,否则返回0。
c 复制代码
int a = 5;
int b = 3;
int result = (a > 0 && b > 0);  // result的值为1
  • 逻辑或操作符(||):用于判断两个条件是否至少有一个成立,如果是则返回1,否则返回0。
c 复制代码
int a = 5;
int b = 3;
int result = (a > 0 || b > 0);  // result的值为1
  • 逻辑非操作符(!):用于取反一个条件的值,如果条件为真,则返回假(0),如果条件为假,则返回真(1)。
c 复制代码
int a = 5;
int result = !(a > 0);  // result的值为0

4. 位操作符:

  • 按位与操作符(&):对两个值进行按位与操作。
c 复制代码
unsigned int a = 5;   // 二进制表示为:0000 0101
unsigned int b = 3;   // 二进制表示为:0000 0011
unsigned int result = a & b;  // result的值为1,二进制表示为:0000 0001
  • 按位或操作符(|):对两个值进行按位或操作。
c 复制代码
unsigned int a = 5;   // 二进制表示为:0000 0101
unsigned int b = 3;   // 二进制表示为:0000 0011
unsigned int result = a | b;  // result的值为7,二进制表示为:0000 0111
  • 按位异或操作符(^):对两个值进行按位异或操作。
c 复制代码
unsigned int a = 5;   // 二进制表示为:0000 0101
unsigned int b = 3;   // 二进制表示为:0000 0011
unsigned int result = a ^ b;  // result的值为6,二进制表示为:0000 0110
  • 左移操作符(<<):将一个值左移指定的位数。
c 复制代码
unsigned int a = 5;   // 二进制表示为:0000 0101
unsigned int result = a << 2;  // result的值为20,二进制表示为:0001 0100
  • 右移操作符(>>):将一个值右移指定的位数。
c 复制代码
unsigned int a = 20;   // 二进制表示为:0001 0100
unsigned int result = a >> 2;  // result的值为5,二进制表示为:0000 0101

以上是一些常见的C语言操作符及其示例代码,除此之外C语言中还有其他类型的操作符。

常见操作符优先级

C语言中常见操作符的优先级从高到低如下:

  1. 一元运算符:

    ++ (自增), -- (自减), + (正号), - (负号), ! (逻辑非), ~ (按位取反), * (指针解引用), & (取地址), sizeof (获取变量类型大小)


  2. 乘法/除法/取余:

    *(乘法), / (除法), % (取余)


  1. 加法/减法:
    +(加法), - (减法)

  1. 移位运算符:
    << (左移), >> (右移)

  1. 关系运算符:
    < (小于), > (大于), <= (小于等于), >= (大于等于)

  1. 相等性运算符:
    == (等于), != (不等于)

  1. 位与运算符:
    & (按位与)

  1. 位异或运算符:
    ^ (按位异或)

  1. 位或运算符:
    | (按位或)

  1. 逻辑与运算符:
    && (逻辑与)

  1. 逻辑或运算符:
    || (逻辑或)

  1. 三元条件运算符:
    ? : (条件运算符)

  1. 赋值运算符:

    = (赋值), +=, -=, *=, /=, %=, <<=, >>=, &=, ^=, |=


注意,这只是一个常见操作符的优先级逐级排序,具体使用时还需要根据具体运算表达式进行适当的括号添加,以确保运算顺序符合预期。

相关推荐
Theodore_10222 小时前
4 设计模式原则之接口隔离原则
java·开发语言·设计模式·java-ee·接口隔离原则·javaee
网易独家音乐人Mike Zhou2 小时前
【卡尔曼滤波】数据预测Prediction观测器的理论推导及应用 C语言、Python实现(Kalman Filter)
c语言·python·单片机·物联网·算法·嵌入式·iot
冰帝海岸3 小时前
01-spring security认证笔记
java·笔记·spring
世间万物皆对象3 小时前
Spring Boot核心概念:日志管理
java·spring boot·单元测试
没书读了4 小时前
ssm框架-spring-spring声明式事务
java·数据库·spring
----云烟----4 小时前
QT中QString类的各种使用
开发语言·qt
lsx2024064 小时前
SQL SELECT 语句:基础与进阶应用
开发语言
小二·4 小时前
java基础面试题笔记(基础篇)
java·笔记·python
开心工作室_kaic4 小时前
ssm161基于web的资源共享平台的共享与开发+jsp(论文+源码)_kaic
java·开发语言·前端
向宇it4 小时前
【unity小技巧】unity 什么是反射?反射的作用?反射的使用场景?反射的缺点?常用的反射操作?反射常见示例
开发语言·游戏·unity·c#·游戏引擎