当前位置: 首页 > 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.xdnf.cn/news/1237735.html

相关文章:

  • C的数据类型与变量
  • lumerical——锥形波导偏振转换
  • 《前端无障碍设计的深层逻辑与实践路径》
  • JavaWeb学习------SpringCloud入门
  • Web 开发 11
  • JavaScript:编程世界中的“语盲”现象
  • CCF-GESP 等级考试 2025年6月认证C++一级真题解析
  • 推荐系统学习笔记(九)曝光过滤 Bloom Filter
  • 从传热学基础到有限元弱形式推导:拆解热传导问题Matlab有限元离散核心
  • Jupyter Notebook 中高效处理和实时展示来自 OpenCV 和 Pillow 的图像数据探究
  • 50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | TodoList(代办事项组件)
  • Android 之 MVC架构
  • JVM学习日记(十五)Day15——性能监控与调优(二)
  • IO流-对象流
  • 回归的wry
  • 前后端交流
  • 电路原理图绘制专业实战教程2
  • Nginx负载均衡配置
  • 6. 平台总线
  • 跨语言模型中的翻译任务:XLM-RoBERTa在翻译任务中的应用
  • Compose笔记(四十一)--ExtendedFloatingActionButton
  • 有限元方法中的数值技术:三角矩阵求解
  • Redis面试精讲 Day 10:Redis数据结构底层实现原理
  • 【AI论文】Rep-MTL:释放表征级任务显著性在多任务学习中的潜力
  • 介绍JAVA语言、介绍greenfoot 工具
  • 数据结构中使用到的C语言
  • golang的包和闭包
  • Python 小数据池(Small Object Pool)详解
  • 使用AndroidStudio调试Framework源码
  • 关于域名的级别