惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
M
MIT News - Artificial intelligence
大猫的无限游戏
大猫的无限游戏
The Cloudflare Blog
Apple Machine Learning Research
Apple Machine Learning Research
罗磊的独立博客
Last Week in AI
Last Week in AI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
有赞技术团队
有赞技术团队
博客园 - 叶小钗
酷 壳 – CoolShell
酷 壳 – CoolShell
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
V
Visual Studio Blog
美团技术团队
F
Fortinet All Blogs
I
Intezer
IT之家
IT之家
T
Threat Research - Cisco Blogs
Blog — PlanetScale
Blog — PlanetScale
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Know Your Adversary
Know Your Adversary
P
Proofpoint News Feed
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
AWS News Blog
AWS News Blog
P
Palo Alto Networks Blog
S
Securelist
L
LINUX DO - 热门话题
Security Archives - TechRepublic
Security Archives - TechRepublic
N
Netflix TechBlog - Medium
TaoSecurity Blog
TaoSecurity Blog
Scott Helme
Scott Helme
Hugging Face - Blog
Hugging Face - Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Project Zero
Project Zero
U
Unit 42
博客园_首页
博客园 - 司徒正美
S
Security Affairs
V
V2EX
T
Threatpost
T
Tailwind CSS Blog
GbyAI
GbyAI
O
OpenAI News
K
Kaspersky official blog
Y
Y Combinator Blog
宝玉的分享
宝玉的分享
H
Hacker News: Front Page
V2EX - 技术
V2EX - 技术
Security Latest
Security Latest

洛屿的小站

STM32F407 IAR环境下uC/OS-III移植完整指南 STM32 UCOS3+HAL库集成中的FPU HardFault问题 一种简单的卡尔曼滤波器设计 Cadence - 应律而动,落指成音 Zephyr - 聆风之息,为你而奏 不改一行插件代码,实现消息优先级与阻断 洛玖定时任务系统 在 butterfly 主题中添加首页点集动画(基于p2line项目) 你好,2026 stm32f4xx-ads1256驱动 stm32f4xx-ad9854并行驱动 主动式网站状态监测实现及其应用 右键菜单加入用Trae打开文件和文件夹 三角洲行动ID映射表 洛玖SDK说明 为网页文章开头添加原文连接 Hexo-Butterfly主题在主页添加GitHub贡献日历 Proteus中555定时器仿真问题 装饰器 洛玖开发日记 STS3032舵机获取力矩输出 kotlin网页前后端那些事 mspm0g3507-ad9850 奇怪的bug Paddle模型转PaddleLite 人工智能考核 构建一个yolov3网络 yolo和paddle模型常见输出参数 PaddleDetection 随便写的一些东西 实验室C语言第一次考核题目讲解及相关代码解读 C语言神经网络房价预测系统 C、C++数组,指针,指针数组,数组指针的区别 C、C++的大括号是必须的部分吗? C、C++预处理详解 C、C++其他关键字详解 C、C++存储类型关键字详解 C、C++控制语句关键字详解 C、C++数据类型关键字详解 C++药品管理系统 Bi-LSTM(Attention)的PyTorch实现 C语言实现波士顿房价预测 easy库的使用 edgeboardFZ3A相关问题 Predict.py的编写 Paddle环境搭建 百度Paddle模型训练 GMD09601-0.96OLED显示屏 【LeetCode 1617】统计子树中城市之间最大距离 C语言学习相关 STM32阵列按键 CH32(F10X F20X) 最短路 拓扑排序
C、C++关键字
洛屿 · 2023-10-10 · via 洛屿的小站

本文章面向初学者问题:对C语言中的相应字符和单词用法不理解

初学者第一次接触到的程序大都是打印hello world

1
2
3
4
5
6
#include <stdio.h>

int main() {
printf("Hello World!\n");
return 0;
}

作为初学者,面对代码中的include、int、main、printf,大部分人是不懂为什么用这些东西就可以做到打印hello world的效果的。

先了解两个概念:关键字预处理


什么是关键字?

在C/C++中,我们常说到的关键字就是用于编程的一些具有特殊作用的词语

以下内容,详情请看各分块所给的链接详解

数据类型关键字

详情情看:C/C++数据类型关键字详解 | www.drluo.top

char:声明字符型变量或函数

short: 声明短整型变量或函数

int: 声明整型变量或函数

float:声明单精度浮点型变量或函数

double:声明双精度浮点型变量或函数

long:声明长整型变量或函数(实际声明长整型会使用long long)

signed/unsigned:声明有符号/无符号类型变量或函数

struct:声明结构体变量或函数

enum:声明枚举类型

union:声明联合数据类型

unsigned:声明无符号类型变量或函数

void:声明函数无返回值或无参数,声明无类型指针…

控制语句关键字

详情情看:C/C++控制语句关键字详解 | www.drluo.top

循环语句 :

​ for,while,do…while

​ break:跳出当前循环,也在switch中使用。

​ continue:结束当前循环,开始下一轮循环

条件语句:

​ if: 条件语句,只有当指定条件为 true 时,会执行if语句后有效范围内的代码

​ else :如果 if 语句的条件为false,则执行else语句后有效范围内的代码

​ else if: 检测一个新的条件,当且仅当前一个条件为false时执行,执行的为该语句后有效范围内的代码

​ switch: 判断语句,用于多段分支

​ case:判断语句分支

​ default:判断语句中的“其他”分支

​ return:子程序返回语句

存储类型关键字

详情情看:C/C++存储类型关键字详解 | www.drluo.top

auto :声明自动变量(详情请看上方链接详解)

extern:声明变量是在其他文件正声明(也可以看做是引用变量)

register:声明寄存器变量

static :声明静态变量

其它关键字

详情情看:C/C++其他关键字详解 | www.drluo.top

const :声明只读变量

sizeof:计算数据类型长度

typedef:用以给数据类型取别名 等

volatile:说明变量在程序执行中可被隐式改变

goto:跳转语句

什么是预处理?

C 预处理器不是编译器的组成部分,但是它是编译过程中一个单独的步骤。

简言之,C 预处理器只不过是一个文本替换工具而已,它们会指示编译器在实际编译之前完成所需的预处理。

详情情看:C/C++预处理详解 | www.drluo.top

指令 描述
#define 定义宏
#include 包含一个源代码文件
#undef 取消已定义的宏
#ifdef 如果宏已经定义,则返回真
#ifndef 如果宏没有定义,则返回真
#if 如果给定条件为真,则编译下面代码
#else #if 的替代方案
#elif 如果前面的 #if 给定条件不为真,当前条件为真,则编译下面代码
#endif 结束一个 #if……#else 条件编译块
#error 当遇到标准错误时,输出错误消息
#pragma 使用标准化方法,向编译器发布特殊的命令到编译器中

理解了关键字和预处理后,让我们再看这段代码:

1
2
3
4
5
6
#include <stdio.h>

int main() {
printf("Hello World!\n");
return 0;
}

#include <stdio.h>: 这是一个预处理指令,用于包含标准输入输出库(Standard Input/Output Library),它提供了一系列用于输入和输出的函数。

stdio.h是一个标准C库头文件,包含了用于标准输入输出操作的声明和定义。

通过包含这个头文件,你可以在程序中使用printf和其他与输入输出相关的函数。

int main(): 这是程序的主函数。

在C语言中,每个C程序都必须包含一个main函数,它是程序的入口点。int是返回类型,表示main函数将返回一个整数值。在这个简单的程序中,main函数没有任何参数。

{}: 这些大括号用于定义main函数的开始和结束,在这些大括号之间的所有代码都属于main函数。

printf("Hello World!\n");: 这是一个printf函数调用,用于将文本"Hello World!"输出到标准输出(通常是屏幕)。

printf函数是C语言中用于格式化输出的函数。在这里,它输出了一个字符串Hello World!,并在字符串末尾添加了一个换行符\n,以使输出换行,让下一个输出位于新的一行。

\n是一个转义字符,他代表换行符。

return 0;: 这是main函数的返回语句。

该语句告诉操作系统程序已经成功执行,并返回一个整数值0。

在C语言中,0通常被视为成功的返回状态码。

可以留意程序执行后弹出的窗口,在出现错误时,程序的返回值是一个非0数。

你也可以修改这里的返回值,留意弹出后的窗口所返回的值,可以发现与此处设置的值相同。(前提是你的程序没有错误)