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

解码C语言运算符

算术运算符

运算符 描述 示例 结果
+ 加法 5 + 3 8
- 减法 5 - 3 2
* 乘法 5 * 3 15
/ 除法 5 / 2 2
% 取模 5 % 2 1
++ 自增 a++ a+1
-- 自减 a-- a-1

注意:

  • 整数除法会截断小数部分
  • 取模运算只能用于整数类型

关系运算符

运算符 描述 示例 结果
== 等于 5 == 3 0
!= 不等于 5 != 3 1
> 大于 5 > 3 1
< 小于 5 < 3 0
>= 大于等于 5 >= 3 1
<= 小于等于 5 <= 3 0

C语言中前缀与后缀自增自减运算符的区别

基本概念

前缀形式(先增减)
  • ++variable:先自增,后使用
  • --variable:先自减,后使用
后缀形式(后增减)
  • variable++:先使用,后自增
  • variable--:先使用,后自减

区别对比表

特性 前缀形式 (++a, --a) 后缀形式 (a++, a--)
执行顺序 先增减,后使用 先使用,后增减
返回值 返回增减后的值 返回增减前的值
性能 通常更高效 可能稍低(需要临时变量)
常见用途 需要立即使用新值 需要先使用原值

代码示例

示例:基本区别
#include <stdio.h>int main() {int a = 5, b = 5;int x, y;// 前缀:先自增,后赋值x = ++a;printf("前缀: a = %d, x = %d\n", a, x); // a=6, x=6// 后缀:先赋值,后自增y = b++;printf("后缀: b = %d, y = %d\n", b, y); // b=6, y=5return 0;
}

逻辑运算符

运算符 描述 示例 结果
&& 逻辑与(全真为真,有假为假,若第一个为假则第二个不判断(短路) (5>3) && (2>1) 1
|| 逻辑或(全假为假,有真为真,若第一个为真则第二个不判断(短路)) (5>3) || (2<1) 1
! 逻辑非 !(5>3) 0

位运算符(以二进制形式进行位或)

运算符 描述 示例 结果
& 按位与 5 & 3 1
| 按位或 5 | 3 7
^ 按位异或 5 ^ 3 6
~ 按位取反 ~5 -6
<< 左移(移出丢弃,空出补0) 5 << 1 10
>> 右移(移出丢弃,空出补符号位) 5 >> 1 2

赋值运算符

运算符 描述 等价于
= 简单赋值 a = 5
+= 加后赋值 a += 5a = a + 5
-= 减后赋值 a -= 5a = a - 5
*= 乘后赋值 a *= 5a = a * 5
/= 除后赋值 a /= 5a = a / 5
%= 取模后赋值 a %= 5a = a % 5
&= 按位与后赋值 a &= 5a = a & 5
` =` 按位或后赋值
^= 按位异或后赋值 a ^= 5a = a ^ 5
<<= 左移后赋值 a <<= 5a = a << 5
>>= 右移后赋值 a >>= 5a = a >> 5

其他运算符

运算符 描述 示例
sizeof() 返回变量或类型的大小 sizeof(int)
& 取地址运算符 &a
* 指针运算符 *ptr
?: 条件运算符 a > b ? a : b
, 逗号运算符 a = (b=3, b+2)a=5
[] 下标运算符 arr[5]
-> 结构体指针成员访问 ptr->member
. 结构体成员访问 struct.member

运算符优先级

从高到低排列:

  1. () [] -> .
  2. ! ~ ++ -- + - * & (type) sizeof
  3. * / %
  4. + -
  5. << >>
  6. < <= > >=
  7. == !=
  8. &
  9. ^
  10. |
  11. &&
  12. ||
  13. ?:
  14. = += -= *= /= %= &= ^= |= <<= >>=
  15. ,

代码示例

#include <stdio.h>#include <stdio.h>int main() {// 算术运算符int a = 10, b = 3;printf("算术运算:\n");printf("%d + %d = %d\n", a, b, a + b);  // 10 + 3 = 13printf("%d / %d = %d\n", a, b, a / b);  // 10 / 3 = 3(整数除法,小数部分被截断)// 关系运算符printf("\n关系运算:\n");printf("%d > %d = %d\n", a, b, a > b);  // 10 > 3 = 1(真)// 逻辑运算符printf("\n逻辑运算:\n");printf("(%d>%d) && (%d<%d) = %d\n", a, b, a, b, (a>b) && (a<b));  // (10>3) && (10<3) = 0(真 && 假 = 假)// 位运算printf("\n位运算:\n");printf("%d & %d = %d\n", a, b, a & b);  // 10 & 3 = 2// 10的二进制: 1010, 3的二进制: 0011// 按位与结果: 0010 = 2// 赋值运算int c = a;      // c = 10c += 5;         // c = 10 + 5 = 15printf("\n赋值运算: c = %d\n", c);  // 输出: c = 15// 条件运算符int max = (a > b) ? a : b;  // 10 > 3 为真,所以 max = a = 10printf("最大值: %d\n", max);  // 输出: 最大值: 10return 0;
}
http://www.sczhlp.com/news/110457/

相关文章:

  • 杭州网站建站推广英文网站优化
  • 果洛wap网站建设哪家好wordpress图片特效插件下载
  • 微官网和微网站免费微信引流推广的方法
  • 合肥网站建设哪家好网站婚礼服务态网站建设论文
  • 旅游网站做seowordpress手机号登陆不了
  • 手机网站特点有实力高端网站设计地址
  • 建设工程消防设计备案网站加盟网站建设服务
  • 南充 网站开发年终总结ppt模板免费下载网站
  • 做正常站网站都被墙了创意广告公司名字
  • php文件怎么打开上海建站seo
  • 银行管理系统网站建设中国城乡住房建设厅官网
  • 多进程
  • 93. 递归实现组合型枚举
  • Sort方法学习(伪代码记录)
  • 深入解析:【每日一问】运算放大器与比较器有什么区别?
  • 9.17支配对问题专题总结
  • 医疗软件网站建设公司排名珠海网站建设珠海
  • 现在都用什么软件做网站百度电脑网页版入口
  • 网站设计怎么弄腾讯企点网页版
  • 考试类网站如何做广州平台公司
  • wordpress的站点地址如何配置有什么学做木工的网站吗
  • 潍坊在线网站建设电商运营的基本内容
  • 哪些网上可以赚钱的网站数据库2008做企业网站
  • 网站营销方案设计公司pageadmin官网
  • Xじゃないか
  • 开源收银体系_大型收银系统源码_OctShop
  • 个人网站首页布局设计华强北商城官网app
  • 已有备 网站新增网站网上注册公司申请入口
  • 石家庄网站建设人员wordpress用什么开发工具
  • 微网站背景图片好学校平台网站模板下载不了