1.3 C 语言入门实战:从 Hello World 到基础语法解析
目录
1 程序的作用
2 初识 Hello World
2.1 新建项目
2.2 程序解释
3 printf 的作用
4 注释及其注意事项
4.1 单行注释
4.2 多行注释
4.3 嵌套错误
5 项目在磁盘上的位置
1 程序的作用
如下图所示,我们编写了一个可以做加法的程序,我们给程序输入 1 和 2,那么程序输出结果 3,因此这个程序的作用是完成某种计算。

提示:程序在现代社会中扮演着多种多样的角色,其作用远超过简单的计算任务。它们能够自动化重复性任务,处理和分析数据,管理信息,提供用户交互界面,辅助决策,提供娱乐和媒体体验,支持教育和培训,实现网络通信,保护安全,以及进行智能控制等。
2 初识 Hello World
2.1 新建项目
点击 “文件”,选择 “新建项目”,如下图所示:

左侧选择 “ C 可执行文件”,然后在右侧选择 “项目存放位置”,最后点击 “创建”,如下图所示:

新建项目后默认会有一个 main.c 代码,如下图所示:

2.2 程序解释
代码及解释如下所示:
#include <stdio.h> // 引入标准输入输出头文件,以便使用 printf 函数 int main() { // 主函数,程序的入口点 // 调用 printf 函数,在屏幕上打印出 "Hello, World!\n" // \n 是一个转义字符,表示新的一行 printf("Hello, World!\n"); // main 函数返回 0,表示程序正常结束 return 0;
}

- main 是主函数名,int 是函数返回值类型。
- 每个 C 程序有且只能有一个主函数 main,程序从 main 函数开始执行。
- 花括号 {} 是函数开始和结束的标志,不可省略。
- 每个 C 语句均以半角分号结束。
3 printf 的作用
使用标准库函数时应在程序开头一行书写如下内容(标准输入输出头文件):
#include <stdio.h> // printf 函数需要使用标准输入输出头文件
printf 函数起打印输出的作用,它将双引号中的字符串 Hello, World! 打印到屏幕上。

提示:更多关于 printf 函数的知识点在后续章节进行讲解。
4 注释及其注意事项
在 C 语言中,注释是用来解释代码或暂时禁用代码部分的一种手段,它不会被编译器执行。 C 语言支持两种类型的注释:行注释(也称为单行注释)和块注释(也称为多行注释)
4.1 单行注释
单行注释(行注释)以 双斜杠( // )开始,直到该行的末尾。这种注释方式只能用于注释掉从 // 开始到行尾的部分代码。如下代码所示:
// 这是一个行注释 printf("Hello, World!\n"); // 这也是行注释
提示:CLion 中单行注释的快捷键是:ctrl + /
注意事项:
- 跨行:行注释只能注释掉它所在行的内容,不能跨越多行。如果需要在多行中添加注释,需要为每一行都添加 // 或使用块注释。
- 嵌套:行注释不支持嵌套,因为注释的结束是由行尾确定的,与注释内容无关。嵌套写法也会显得不够专业。
// 这是一个行注释,尝试在这里嵌套另一个 // 行注释是不专业的写法
// 但实际上,编译器会自动忽略这一行剩余的所有内容
// 所以,写一个 // 就可够了,没必要写多个// // //
4.2 多行注释
多行注释(块注释)以 /* 开始,以 */ 结束,它们之间的所有内容(包括多行)都被视为注释。
/* 这是一个多行注释 它可以跨越多行
*/
int b = 10; /*
下面的代码块被注释掉了,
因此不会被编译器执行。
int c = a + b;
*/
提示:CLion 中多行注释的快捷键是:ctrl + shift + /
4.3 嵌套错误
需要注意的是,尽管多行注释可以跨越多行,但它同样不支持嵌套。也就是说,不能在一个多行注释内部再开始一个新的多行注释。如果尝试这样做,可能会导致编译错误。如下所示:
/* 这是一个多行注释 /* 尝试开始另一个多行注释 */ 到上面一行末尾第一个块注释就算完成了,编译器会因为我不是注释内容而报错printf("Hello, World!\n"); */
在这个例子中,第二个 /* 并不会开始一个新的块注释,而是作为第一个块注释的一部分。由于第一个 /* 遇到后面的第一个 */ 就会构成一个完整的块注释,这会导致第一个 */ 之后的内容(原本应为注释的内容),被编译器错误地解释和执行,从而引起编译错误。如下图所示:

5 项目在磁盘上的位置
如下图所示,右键单击 “项目名”,选择打开,选择 Explorer(打开于):

就可以看到如下界面,就是我们的项目文件夹:

相关文章:
1.3 C 语言入门实战:从 Hello World 到基础语法解析
目录 1 程序的作用 2 初识 Hello World 2.1 新建项目 2.2 程序解释 3 printf 的作用 4 注释及其注意事项 4.1 单行注释 4.2 多行注释 4.3 嵌套错误 5 项目在磁盘上的位置 1 程序的作用 如下图所示,我们编写了一个可以做加法的程序,我们给程序…...
一文读懂什么是Go语言goroutine
1. 进程、线程和协程的区别 进程: 进程是具有一定独立功能的程序,进程是系统资源分配和调度的最小单位。每个进程都有自己的独立内存空间,不同进程通过进程间通信来通信。由于进程比较重量,占据独立的内存,所以上下文进程间的切换…...
计算机毕业设计 农家乐管理平台 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试
🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点…...
Spring Boot优缺点
Spring Boot 是一款用于简化Spring应用开发的框架,它集成了大量常用的框架和工具,大大简化了Spring项目的配置和部署。下面是Spring Boot的优缺点: 优点: 简化配置:Spring Boot自动配置功能可以根据应用的依赖自动配…...
Android Studio中创建apk签名文件
本文以macOS中Android Studio 2021.1.1版本为例介绍创建apk签名文件的操作步骤: 1.启动Android Studio,并打开一个Android项目。 2.依次点击菜单:Build -> Generate Signed Bundle / APK...。 3.在弹出的"Generate Signed Bundle or …...
CRC32 JAVA C#实现
项目中用到CRC32进行校验得地方,需要用到C#和java进行对比: 一、C#实现: class CRC32Cls { protected ulong[] Crc32Table; //生成CRC32码表 public void GetCRC32Table() { ulong Crc; …...
本科阶段最后一次竞赛Vlog——2024年智能车大赛智慧医疗组准备全过程——5Webscoket节点的使用
本科阶段最后一次竞赛Vlog——2024年智能车大赛智慧医疗组准备全过程——5Webscoket节点的使用 有了前面几篇文章的铺垫,现在已经可以实现我到手测试那一步的 1.解读usb_websocket_display.launch.py 首先进入这个目录/root/dev_ws/src/origincar/originca…...
深入学习小程序第二天:事件处理与用户交互
一、概念 1. 事件绑定与类型 在小程序中,通过在组件上添加特定的属性(如 bind 开头的属性)来绑定事件处理函数,以响应用户的交互操作。常见的事件类型包括触摸事件、表单事件和系统事件: 触摸事件:用于响…...
操作系统快速入门(一)
😀前言 本篇博文是关于操作系统的,希望你能够喜欢 🏠个人主页:晨犀主页 🧑个人简介:大家好,我是晨犀,希望我的文章可以帮助到大家,您的满意是我的动力😉&…...
Spring Cloud微服务性能优化:策略、实践与未来趋势
标题:Spring Cloud微服务性能优化:策略、实践与未来趋势 摘要 在微服务架构中,服务调用链路的性能优化是确保系统高效运行的关键。Spring Cloud作为微服务架构的主流实现之一,提供了多种工具和方法来优化服务间的调用。本文将深…...
秒懂C++之多态
目录 一. 多态的概念 二. 多态的定义及实现 多态的构成条件 虚函数重写的例外 协变(基类与派生类虚函数返回值类型不同) 析构函数的重写(基类与派生类析构函数的名字不同) 练习例题 final override 重载、覆盖(重写)、隐藏(重定义)的对比 三. 抽象类 四. 多态的原理…...
C语言:求最大数不用数组
(1)题目: 输入一批正数用空格隔开,个数不限,输入0时结束循环,并且输出这批整数的最大值。 (2)代码: #include "stdio.h" int main() {int max 0; // 假设输入…...
零门槛成为HelpLook推荐官,邀好友加入,奖励享不停!
什么!? 还有谁不知道HelpLook推荐官计划! 只需要简单地注册加入 在好友成功订阅套餐之后 可一次性获得20%的丰厚现金返佣 HelpLook是一款快速搭建AI知识库的系统,并帮助企业0代码搭建帮助中心、FAQs、SOPs、产品文档、说明书和…...
基于python的图书馆大数据可视化分析系统设计与实现
博主介绍: 大家好,本人精通Java、Python、C#、C、C编程语言,同时也熟练掌握微信小程序、Php和Android等技术,能够为大家提供全方位的技术支持和交流。 我有丰富的成品Java、Python、C#毕设项目经验,能够为学生提供各类…...
利用formdata自动序列化和xhr上传表单到后端
//FormData对象是XMLHTTPRequest level2新增的类型,它可以自动序列化表单内容,不再需要我们去写序列化表单方法; FormData()即可以直接把整个表单给它,也可以分别使用append(‘字段’,‘值’)方法给FormData(); 现在就…...
视频号小店大地震?还好我看了原文
关注卢松松,会经常给你分享一些我的经验和观点。 我X,如果不是看了原文,我差点也上当了。虽然视频号小店关闭了450个类目,但又重新开放了412个类目啊。 昨天(8月9日),视频号一口气发了10个公…...
Genymotion adb shell
Genymotion 账户是 qq邮箱 参考 Ubuntu 20.04 安装 Android 模拟器 Genymotion https://www.zzzmh.cn/post/553cd96d4e47490a90b3302a76a93c0d Genymotion adb shell adb shell C:\Program Files\Genymobile\Genymotion\tools>adb shell lsusb Bus 001 Device 001: ID …...
探索AI与社交的交汇点:看Facebook如何引领智能化革命
在当今数字化时代,人工智能(AI)正成为各大科技公司变革的重要驱动力。作为全球领先的社交媒体平台,Facebook(现Meta Platforms)正处于这一智能化革命的前沿。通过不断创新和应用AI技术,Facebook…...
JVM 加载阶段 Class对象加载位置是在 堆中还是方法区?
在JVM(Java虚拟机)的类加载过程中,Class对象的加载位置涉及到堆(Heap)和方法区(Method Area)两个关键区域。具体来说,类的加载阶段涉及到将类的.class文件中的二进制数据读入到内存中…...
Android 获取短信验证
Android 获取短信验证 Android 获取短信验证 输入发短信的手机号,点击获取验证码,等接收到验证码后就会自动获取 SmsReceiver.Java import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; impor…...
大数据学习栈记——Neo4j的安装与使用
本文介绍图数据库Neofj的安装与使用,操作系统:Ubuntu24.04,Neofj版本:2025.04.0。 Apt安装 Neofj可以进行官网安装:Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...
手游刚开服就被攻击怎么办?如何防御DDoS?
开服初期是手游最脆弱的阶段,极易成为DDoS攻击的目标。一旦遭遇攻击,可能导致服务器瘫痪、玩家流失,甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案,帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...
DockerHub与私有镜像仓库在容器化中的应用与管理
哈喽,大家好,我是左手python! Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库,用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...
python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)
更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...
Neo4j 集群管理:原理、技术与最佳实践深度解析
Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...
Typeerror: cannot read properties of undefined (reading ‘XXX‘)
最近需要在离线机器上运行软件,所以得把软件用docker打包起来,大部分功能都没问题,出了一个奇怪的事情。同样的代码,在本机上用vscode可以运行起来,但是打包之后在docker里出现了问题。使用的是dialog组件,…...
解读《网络安全法》最新修订,把握网络安全新趋势
《网络安全法》自2017年施行以来,在维护网络空间安全方面发挥了重要作用。但随着网络环境的日益复杂,网络攻击、数据泄露等事件频发,现行法律已难以完全适应新的风险挑战。 2025年3月28日,国家网信办会同相关部门起草了《网络安全…...
Rust 开发环境搭建
环境搭建 1、开发工具RustRover 或者vs code 2、Cygwin64 安装 https://cygwin.com/install.html 在工具终端执行: rustup toolchain install stable-x86_64-pc-windows-gnu rustup default stable-x86_64-pc-windows-gnu 2、Hello World fn main() { println…...
GraphRAG优化新思路-开源的ROGRAG框架
目前的如微软开源的GraphRAG的工作流程都较为复杂,难以孤立地评估各个组件的贡献,传统的检索方法在处理复杂推理任务时可能不够有效,特别是在需要理解实体间关系或多跳知识的情况下。先说结论,看完后感觉这个框架性能上不会比Grap…...
理想汽车5月交付40856辆,同比增长16.7%
6月1日,理想汽车官方宣布,5月交付新车40856辆,同比增长16.7%。截至2025年5月31日,理想汽车历史累计交付量为1301531辆。 官方表示,理想L系列智能焕新版在5月正式发布,全系产品力有显著的提升,每…...
