当前位置: 首页 > news >正文

C的运算符与表达式

运算符与表达式

运算符是C语言中用于执行各种操作的符号或关键字。运算符与操作数结合形成表达式,表达式可以计算出一个值。理解各种运算符及其优先级与结合性,是编写正确和高效C程序的基础。


1 算术运算符

算术运算符用于执行基本的数学计算,包括加、减、乘、除和取模(余数)等操作。

常见算术运算符
运算符 描述 示例 解释
+ 加法 a + b 将两个操作数相加
- 减法 a - b 从第一个操作数中减去第二个操作数
* 乘法 a * b 将两个操作数相乘
/ 除法 a / b 将第一个操作数除以第二个操作数
% 取模(余数) a % b 计算第一个操作数除以第二个操作数的余数
示例与详细解释
#include <stdio.h>int main() {int a = 15;int b = 4;int sum, difference, product, quotient, remainder;// 加法sum = a + b; // 15 + 4 = 19printf("a + b = %d\n", sum);// 减法difference = a - b; // 15 - 4 = 11printf("a - b = %d\n", difference);// 乘法product = a * b; // 15 * 4 = 60printf("a * b = %d\n", product);// 除法quotient = a / b; // 15 / 4 = 3 (整数除法,舍去小数部分)printf("a / b = %d\n", quotient);// 取模remainder = a % b; // 15 % 4 = 3printf("a %% b = %d\n", remainder);return 0;
}

输出

a + b = 19
a - b = 11
a * b = 60
a / b = 3
a % b = 3
注意事项
  1. 整数除法:当两个整数相除时,结果也是一个整数,任何小数部分都会被舍去。
  2. 取模运算:取模运算仅适用于整数类型,计算两个整数相除后的余数。
更多示例
#include <stdio.h>int main() {float x = 5.5;float y = 2.2;float result;// 加法result = x + y; // 5.5 + 2.2 = 7.7printf("x + y = %.1f\n", result);// 减法result = x - y; // 5.5 - 2.2 = 3.3printf("x - y = %.1f\n", result);// 乘法result = x * y; // 5.5 * 2.2 = 12.1printf("x * y = %.1f\n", result);// 除法result = x / y; // 5.5 / 2.2 = 2.5printf("x / y = %.1f\n", result);return 0;
}

输出

x + y = 7.7
x - y = 3.3
x * y = 12.1
x / y = 2.5

2 关系运算符

关系运算符用于比较两个值,结果是一个布尔值(真或假)。这些运算符常用于条件判断和循环控制。

常见关系运算符
运算符 描述 示例 解释
== 等于 a == b 如果a等于b,结果为真(1)
!= 不等于 a != b 如果a不等于b,结果为真(1)
> 大于 a > b 如果a大于b,结果为真(1)
< 小于 a < b 如果a小于b,结果为真(1)
>= 大于等于 a >= b 如果a大于等于b,结果为真(1)
<= 小于等于 a <= b 如果a小于等于b,结果为真(1)
示例与详细解释
#include <stdio.h>int main() {int a = 10;int b = 20;// 等于if (a == b) {printf("a 等于 b\n");} else {printf("a 不等于 b\n");}// 不等于if (a != b) {printf("a 不等于 b\n");}// 大于if (a > b) {printf("a 大于 b\n");} else {printf("a 不大于 b\n");}// 小于if (a < b) {printf("a 小于 b\n");}// 大于等于if (a >= 10) {printf("a 大于等于 10\n");}// 小于等于if (b <= 20) {printf("b 小于等于 20\n");}
http://www.lryc.cn/news/609304.html

相关文章:

  • BP神经网络:当线性模型已到尽头,如何用“人造大脑”挖掘非线性预测规律?
  • 26李林880高数第二章 一元函数微分学及其应用
  • Kafka 是什么?
  • SpringBoot项目数据脱敏(自定义注解)
  • C语言基础03——数组——习题
  • GPIO交换矩阵和IO_MUX
  • 自动驾驶控制算法——LQR控制算法
  • 直流无刷电机(一)
  • C++ <type_traits> 应用详解
  • 10.Redis 数据类型
  • Maximum Subarray Sum II
  • 【超分辨率专题】PiSA-SR:单步Diff超分新突破,即快又好,还能在线调参
  • 【前端:Html】--1.2.基础语法
  • LCL滤波器及其电容电流前馈有源阻尼设计软件【LCLAD_designer】
  • MCU中的复位生成器(Reset Generator)是什么?
  • 2025年EAAI SCI1区TOP,森林救援调度与路径规划:一种新型蚁群优化算法应用,深度解析+性能实测
  • 【Spring】Bean的作用域(单例、多例、请求、会话、Application)
  • ICCV 2025 | EPD-Solver:西湖大学发布并行加速扩散采样算法
  • Azure DevOps — Kubernetes 上的自托管代理 — 第3部分
  • Autoswagger:揭露隐藏 API 授权缺陷的开源工具
  • Stream 过滤后修改元素,却意外修改原列表
  • 人工智能之数学基础:几何型(连续型)随机事件概率
  • Java开发中敏感信息加密存储全解析:筑牢数据安全防线
  • SpringBoot之整合MyBatisPlus
  • linux火焰图
  • javaweb开发之Servlet笔记
  • 大模型中的Token和Tokenizer:核心概念解析
  • 业务系统跳转Nacos免登录方案实践
  • 电力电子技术知识总结-----PWM知识点
  • 【MybatisPlus】join关联查询MPJLambdaWrapper