文章目录

  • 数据类型
    • 1、数据类型(12个)
  • 控制语句
    • 2、控制语句关键字(12个)
  • 存储类型
    • 3、存储类型关键字(4个)
  • 其他关键字
    • 4、其他关键字(4个)​


一共32个关键字分为

数据类型

1、数据类型(12个)

关键字说明示例
​**char**​声明字符类型(1字节)char grade = 'A';
​**int**​声明整型(通常4字节)int age = 25;
​**float**​单精度浮点型(约6-7位小数)float pi = 3.14f;
​**double**​双精度浮点型(约15位小数)double precise = 3.1415926535;
​**short**​短整型(通常2字节)short temp = -10;
​**long**​长整型(通常4或8字节)long population = 1000000000L;
​**signed**​有符号类型(默认)signed int value = -42;
​**unsigned**​无符号类型(仅非负数)unsigned int counter = 100;
​**void**​空类型(无返回值/无参数)void printHello() { printf("Hello"); }
​**struct**​结构体(封装多个类型)struct Student { int id; char name[20]; };
​**union**​联合体(共享内存空间)union Data { int i; float f; } data;
​**enum**​枚举(定义命名常量)enum Color { RED, GREEN, BLUE };

一般常用的有:

先来四个比较特殊的:

  • 枚举 enum
  • 结构体 struct
  • 联合体 union
  • 空类型 void

有符号无符号两个:

  • 有符号 signed
  • 无符号 unsigned

剩下6个具体的数据类型:

  • 字符型 char(一个字节,也就是u8,uint8_8)
  • 整数型 int(一般是4个字节,也就是u32,uint32_32)
  • 短整型 short(一般是两个字节也就是u16,uint16_t)
  • 长整型 long(一般是4或者8字节)
  • 单浮点型 float(一般是6到7为小数)
  • 双浮点型 double(一般是15位小数)
    以上会有一些组合
    例如:
    unsigned int
    unsigned short
    unsigned long

控制语句

2、控制语句关键字(12个)

关键字说明示例
​**if**​条件判断if (score >= 60) { printf("Pass"); }
​**else**​否定分支else { printf("Fail"); }
​**switch**​多分支选择switch (grade) { case 'A': ... }
​**case**​分支匹配项case 1: printf("Option 1"); break;
​**default**​默认分支default: printf("Invalid");
​**for**​循环(明确次数)for (int i = 0; i < 5; i++) { ... }
​**while**​当型循环while (x > 0) { x--; }
​**do**​直到型循环(先执行)do { x++; } while (x < 10);
​**break**​跳出循环/分支if (error) break;
​**continue**​跳过本次循环if (i == 3) continue;
​**goto**​无条件跳转(慎用)goto cleanup; ... cleanup: ...
​**return**​函数返回值return a + b;

主要是
break:

#include <stdio.h>
int main() {for (int i = 0; i < 10; i++) {if (i == 5) {break; // i=5 时退出循环}printf("%d ", i);}return 0;
}

输出​:0 1 2 3 4
说明​:循环在 i=5 时被终止,后续迭代不再执行

for (int i = 0; i < 3; i++) {for (int j = 0; j < 3; j++) {if (j == 1) break; // 仅退出内层循环printf("i=%d, j=%d\n", i, j);}
}

仅跳出最近一层结构

  • 在嵌套循环中,break 只终止最内层循环:

输出​:
i=0, j=0
i=1, j=0
i=2, j=0

continue 的区别

  • break:完全退出循环。
  • continue:跳过当前迭代,进入下一次循环

continue:

#include <stdio.h>
int main() {for (int i = 1; i <= 10; i++) {if (i % 2 == 0) {continue; // 跳过偶数}printf("%d ", i);}return 0;
}

输出​:1 3 5 7 9
说明​:i 为偶数时,continue 跳过 printf,直接进入下一次循环

#include <stdio.h>
int main() {int i = -5, sum = 0;while (i <= 5) {if (i < 0) {i++;continue; // 跳过负数}sum += i;i++;}printf("非负数和:%d", sum);return 0;
}

输出​:非负数和:15
说明​:负数时跳过累加,但需手动更新循环变量 i++,避免死循环

for (int i = 0; i < 3; i++) {for (int j = 0; j < 3; j++) {if (j == 1) continue; // 仅跳过内层当前迭代printf("i=%d, j=%d\n", i, j);}
}

continue 仅影响最内层循环。嵌套循环中不会跳过外层:
输出​:
i=0, j=0
i=0, j=2
i=1, j=0
…(其他同理)

break 的区别

  • continue:仅跳过当前迭代,循环继续。
  • break:​终止整个循环,直接退出

continue 的核心价值是优化循环控制,适合以下场景:

  • 过滤数据​:跳过无效值(如负数、零值)。
  • 条件处理​:特定条件下忽略部分计算(如跳过偶数的打印)。
  • 简化逻辑​:替代多层 if 嵌套,提升代码可读性。

存储类型

3、存储类型关键字(4个)

关键字说明示例
​**auto**​自动变量(默认局部)auto int x = 10;(通常省略)
​**static**​静态变量(生命周期全局)static int count = 0;(跨函数调用保留值)
​**register**​寄存器变量(建议快速访问)register int i;(编译器可能忽略)
​**extern**​外部声明(跨文件引用)extern int globalVar;(定义在其他文件)

其他关键字

4、其他关键字(4个)​

关键字说明示例
​**const**​常量(值不可修改)const int MAX = 100;
​**sizeof**​计算类型/变量大小size_t size = sizeof(int); // 输出4
​**typedef**​类型别名typedef int Integer; Integer num = 5;
​**volatile**​易变变量(防编译器优化)volatile int flag = 0;(多线程/中断中常用)

文章源码获取方式:
如果您对本文的源码感兴趣,欢迎在评论区留下您的邮箱地址。我会在空闲时间整理相关代码,并通过邮件发送给您。由于个人时间有限,发送可能会有一定延迟,请您耐心等待。同时,建议您在评论时注明具体的需求或问题,以便我更好地为您提供针对性的帮助。

【版权声明】
本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议。这意味着您可以自由地共享(复制、分发)和改编(修改、转换)本文内容,但必须遵守以下条件:
署名:您必须注明原作者(即本文博主)的姓名,并提供指向原文的链接。
相同方式共享:如果您基于本文创作了新的内容,必须使用相同的 CC 4.0 BY-SA 协议进行发布。

感谢您的理解与支持!如果您有任何疑问或需要进一步协助,请随时在评论区留言。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/88643.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/88643.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/88643.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

粒子滤波|粒子滤波的相关算法理论介绍

在自动控制、导航、目标跟踪等众多领域&#xff0c;系统状态估计是获取真实状态的关键环节。由于观测信号常受噪声干扰&#xff0c;滤波技术成为提取可靠信息的核心手段。本文将围绕目标跟踪技术中的滤波算法理论展开&#xff0c;重点解析粒子滤波框架的原理与应用。一、动态系…

Jenkins+Gitee+Docker容器化部署

写在前文 本文主要是通过Jenkins的maven项目版本GiteeDocker-maven插件来进行部署的&#xff0c;本文没有使用dockerfile/docker-compose。 本文默认已经安装了Docker 1、安装Jenkins Step1、创建文件夹当作映射jenkins的home文件夹 mkdir /app/jenkins Step2、赋权&#xff…

[Meetily后端框架] 多模型-Pydantic AI 代理-统一抽象 | SQLite管理

第5章&#xff1a;人工智能模型交互&#xff08;Pydantic-AI 代理&#xff09; 欢迎回来&#xff01; 在上一章第四章&#xff1a;文字记录处理逻辑中&#xff0c;我们学习了TranscriptProcessor如何将冗长的会议记录分解为称为"块"的较小片段&#xff0c;因为人工…

利用DeepSeek实现rust调用duckdb动态链接库的duckdb CLI

提示词&#xff1a;请用rust调用duckdb-rs实现一个duckdb CLI,支持语法突出显示和计时&#xff0c;还支持命令行管道输入输出 Cargo.toml [package] name "duckdb-cli" version "0.1.0" edition "2024"[dependencies] duckdb "1.3.1&qu…

C++,从汇编角度看《虚拟继承的邪恶》

刷到一篇文章&#xff1a; 作者&#xff1a; 原文&#xff1a;虛擬繼承的邪惡 讨论到这样的一个程序&#xff0c;最终输出什么&#xff1f;&#xff1f;&#xff1f; 代码有简化命名 using namespace std;class A { public:A(int a 0) : v(a) {};int v; };template <type…

多 Agent 强化学习实践指南(一):CTDE PPO 在合作捕食者-猎物游戏中的应用详解

我们来详细讲解如何在合作捕食者-猎物游戏中结合 PPO (Proximal Policy Optimization) 算法。我们将聚焦于 CTDE&#xff08;Centralized Training, Decentralized Execution&#xff0c;集中训练、分散执行&#xff09; 模式&#xff0c;因为这是处理合作多 Agent 任务的常用且…

Web应用文件上传安全设计指南

引言 在当今的Web应用中&#xff0c;文件上传功能已成为基础且必要的服务能力&#xff0c;但不当的设计可能带来目录遍历、代码注入、服务端资源耗尽等安全风险。本文从威胁模型、安全设计原则、技术实现三个维度&#xff0c;系统阐述安全文件上传架构的设计要点。 一、威胁模型…

用 React Three Fiber 实现 3D 城市模型的扩散光圈特效

本文介绍了如何使用 React Three Fiber&#xff08;R3F&#xff09;和 Three.js 实现一个从中心向外扩散的光圈特效&#xff08;DiffuseAperture 组件&#xff09;&#xff0c;并将其集成到城市 3D 模型&#xff08;CityModel 组件&#xff09;中。该特效通过动态调整圆柱几何体…

【牛客刷题】COUNT数字计数

文章目录 一、题目介绍二、题解思路三、算法实现四、复杂度分析五 、关键步骤解析5.1 数字分解5.2 三种情况处理5.2.1 情况1: d < c u r d < cur d<cur(完整周期)5.2.2 情况2: d = c u r d = cur d=cur(混合周期)5.2.3 情况3: d > c u r d > cur d>cu…

AGV穿梭不“迷路”CCLinkIE转Modbus TCP的衔接技巧

在AGV控制系统集成中&#xff0c;工程师常面临一个现实难题&#xff1a;如何让CCLinkIE总线与Modbus TCP设备实现高效通信&#xff1f;这种跨协议的连接需求&#xff0c;往往需要耗费大量时间调试。本文将通过实际案例解析&#xff0c;为制造行业工程师提供可复用的解决方案。【…

【代码随想录】刷题笔记——哈希表篇

目录 242. 有效的字母异位词 349. 两个数组的交集 202. 快乐数 1. 两数之和 454. 四数相加 II 383. 赎金信 15. 三数之和 18. 四数之和 242. 有效的字母异位词 思路 代码 class Solution {public boolean isAnagram(String s, String t) {if (s.length() ! t.length()…

Python爬虫实战:研究messytables库相关技术

1. 引言 在当今数字化时代,互联网上存在着大量有价值的数据。然而,这些数据通常以不规则的格式存在,尤其是表格数据,可能包含复杂的表头、合并单元格、不规则布局等问题。传统的数据处理工具往往难以应对这些挑战。 网络爬虫技术可以帮助我们从网页上自动提取数据,而 mes…

Vue3的组件通信方式

通信方式适用层级数据流向复杂度Props/Emits父子组件单向/双向★☆☆v-model父子组件双向★☆☆Provide/Inject跨层级组件自上而下★★☆事件总线任意组件任意方向★★★Pinia/Vuex全局状态任意方向★★☆Refs模板引用父子组件父→子★☆☆作用域插槽父子组件子→父★★☆Web W…

创客匠人:大健康创始人IP如何用“社会责任”构建品牌护城河

一、商业与责任的失衡困局部分大健康IP将利润置于首位&#xff0c;甚至牺牲用户利益&#xff0c;导致品牌形象脆弱。某保健品公司因夸大宣传被曝光后&#xff0c;尽管销量曾达千万&#xff0c;却因缺乏社会认同&#xff0c;一夜之间崩塌&#xff0c;证明没有社会责任支撑的商业…

AI:机器人未来的形态是什么?

机器人未来的形态将受到技术进步、应用场景需求和社会接受度的综合影响&#xff0c;以下是对未来机器人形态的预测&#xff0c;涵盖技术趋势、设计方向和应用场景&#xff1a; 1. 形态多样化与通用化 人形机器人&#xff08;Humanoid Robots&#xff09;&#xff1a; 趋势&…

创建 UIKit 项目教程

一、打开 XCode&#xff0c;选择 iOS 下的 App&#xff0c;然后点 Next二、Interface 选择 Storyboard&#xff0c;然后点 Next三、删掉 Main.storyboard四、删掉 SceneDelegate.swift五、AppDelegate.swift 只保留第一个函数六、在 AppDelegate.swift 文件里的 application 函…

防爬虫君子协定 Robots.txt 文件

1.什么是robots.txt ? robots.txt是一个位于网站根目录的文本文件,用于指导搜索引擎爬虫如何访问和抓取网站内容。它遵循特定的语法规则,是网站与爬虫通信的重要工具。当搜索引擎访问一个网站时,它首先会检查该网站的根域下是否有一个叫做robots.txt的纯文本文件。Robots.…

浅谈 Python 中的 yield——生成器对象与函数调用的区别

我们来看这么一个例子&#xff1a; def greeter():name yield "你是谁&#xff1f;"yield f"你好&#xff0c;{name}"g greeter() print(next(g)) # → "你是谁&#xff1f;" print(g.send("张三")) # → "你好&#xf…

云端docker小知识

1、docker的三个关键概念image、container、dockerfile2、docker的container3、dockerfile4、docker制作image5、linux&#xff08;ubuntu&#xff09;安装docker&#xff08;步骤1和4&#xff09;6、docker基本命令docker images 查看全部镜像docker rmi -f 1e5f3c5b981a 删除…

【Elasticsearch】昂贵算法与廉价算法

在 Elasticsearch 里&#xff0c;“昂贵”并不单指“CPU 时间”&#xff0c;而是综合了 **CPU、内存、磁盘 I/O、网络传输** 以及 **实现复杂度** 的代价。下面把常见“昂贵算法”拆开说&#xff1a;1. **高计算密度的文本算法** • **match_phrase slop**&#xff08;带跨距…