尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

C 运算符、表达式、语句

C 运算符、表达式、语句
📅 发布时间:2026/6/19 6:22:06

本文记录一下,在C语言中的基本概念;在很多书籍中运算符、表达式、语句会被分为多个章节,细致地介绍;但本人记录这个系列主要是为了拾遗,所以就将觉得有必要提及的知识点记录下来。
运算符大概分为算术运算、逻辑运算、单目运算符、三目运算符这些;运算符和运算对象可以组成表达式;表达式加上分号又构成了语句;一组语句能够完成一项特定的工作,为了重复利用这些语句,又引出了函数。。。。。

整数相除还是整数

#include <stdio.h>int main(void) {printf("5/3=%d\n", 5 / 3);printf("5/3.0=%f\n", 5 / 3.);return 0;
}

输出:

5/3=1
5/3.0=1.666667

从上面结果可以看出整数除法由于结果还是整数所以算出的结果只有商,余数被丢弃。

类型转换

理论上来讲表达式中两个数类型应该相同,但如果出现了不同类型的,那么低类型会向高类型自动转换,比如:5/3.0,最终会被自动转成5.0/3.0。
还有一种想从高类型转成低类型的、或者希望自己进行类型转换的场景,此时可以使用(类型名)数据对象 的方式进行强制类型转换。

异或运算实用小技巧

我们知道想要实现两个变量互相交换值,则需要引入一个临时变量:

#include <stdio.h>int main(void) {int a = 1;int b = 2;printf("交换前,a=%d,b=%d\n", a, b);int tmp = a;a = b;b = tmp;printf("交换后,a=%d,b=%d\n", a, b);return 0;
}

输出:

交换前,a=1,b=2
交换后,a=2,b=1

有了异或运算符之后,无需引入临时变量,使用异或即可。

#include <stdio.h>int main(void) {int a = 1;int b = 2;printf("交换前,a=%d,b=%d\n", a, b);a = a ^ b;b = b ^ a;a = a ^ b;printf("交换后,a=%d,b=%d\n", a, b);return 0;
}

sizeof求数据大小

语法: sizeof(运算对象)
圆括号中可以是 类型名 ;也可以是具体的数据对象如 变量名;当圆括号中的对象是类型名时 圆括号不可省略

#include <stdio.h>int main(void) {size_t size_char = sizeof(char);printf("char 类型占据:%zu 字节\n", size_char);size_t size_int = sizeof 1;printf("整数1占据:%zu 字节\n", size_int);const float pi = 3.14159;size_t size_float = sizeof(pi);printf("变量pi占据:%zu 字节\n", size_float);return 0;
}

输出

char 类型占据:1 字节
整数1占据:4 字节
变量pi占据:4 字节

表达式和语句

一个值 一个变量都算是一个表达式;但是表达式不是c程序的基本模块,语句才是;所以表达式一般不能单独出现。语句常见的形式为表达式+分号

#include <stdio.h>int main(void) {int a;a;1;1+1;return 0;
}

上面展示的这些都可以称作是语句。

条件、循环、跳转语句

多条语句能够实现特定的功能;根据语句块的形式又可以将语句分为:具有顺序结构的一般语句、具有分支结构的条件语句、具有循环结构的循环语句、具有跳转能力的跳转语句。

  • 顺序结构:代码从上到下一行一行地执行语句,这种格式太过简单与常见,不再赘述
  • 分支结构:最常用的if else 的组合;或者 switch case组成的多分支结构
  • 循环结构:最常见的是 for ([只会在循环开始时执行一次的初始表达式];[循环是否能够继续的条件表达式];[促进循环表达式];) 或 do{循环体} while(循环是否继续的表达式) 及 while(循环是否继续的表达式) do
  • 跳转语句:
    break语句 结束当前层循环,继续后续代码;(注意:由于程序中可能存在多层循环嵌套,break;只是跳出离他最近的那层循环,再外层的循环不受影响);
    continue语句 立刻跳出此次迭代,开始执行下一趟迭代;尽管continue后面跟的可能还有一些语句没有执行,这一趟也不再执行了。
    简单打印一个99乘法表
#include <stdio.h>int main(void) {int a;for (a = 1; a <= 9; a++) {int b;for (b = 1; b <= 9; b++) {if (b < a) {printf("\t\t");continue;}printf("%d*%d=%d\t", a, b, a * b);}printf("\n");}return 0;
}

输出:
9*9乘法表
以上便是对C语言运算符、表达式、语句、控制语句知识点的记录。

相关新闻

  • [KaibaMath]1018 基于复合函数理解子数列的一般项
  • 窗口函数
  • CSP-S 2025 总结

最新新闻

  • S12S BDM硬件握手协议:ACK脉冲原理与嵌入式调试实战
  • 前向车辆最小转弯约束下的两点间最短路径生成工具(MATLAB实现+图形可视化)
  • 2026年即时零售无人仓加盟推荐:无人外卖仓/外卖闪电仓/前置仓无人仓/即时零售运营加盟全解析 - 海棠依旧大
  • 2026年东莞全域保洁服务公司推荐:开荒清洁/外墙清洗/石材养护/甲醛治理/油烟管道清洁/日常驻场保洁 - 海棠依旧大
  • CVE-2025-55182本地复现:路径遍历漏洞原理与实战利用详解
  • 麻省理工研究人员打造 Fractal 操作系统,获苹果 M1 芯片新发现

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号