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…...
AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径
目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...
C++:std::is_convertible
C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...
OkHttp 中实现断点续传 demo
在 OkHttp 中实现断点续传主要通过以下步骤完成,核心是利用 HTTP 协议的 Range 请求头指定下载范围: 实现原理 Range 请求头:向服务器请求文件的特定字节范围(如 Range: bytes1024-) 本地文件记录:保存已…...
数据链路层的主要功能是什么
数据链路层(OSI模型第2层)的核心功能是在相邻网络节点(如交换机、主机)间提供可靠的数据帧传输服务,主要职责包括: 🔑 核心功能详解: 帧封装与解封装 封装: 将网络层下发…...
tree 树组件大数据卡顿问题优化
问题背景 项目中有用到树组件用来做文件目录,但是由于这个树组件的节点越来越多,导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多,导致的浏览器卡顿,这里很明显就需要用到虚拟列表的技术&…...
RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文全面剖析RNN核心原理,深入讲解梯度消失/爆炸问题,并通过LSTM/GRU结构实现解决方案,提供时间序列预测和文本生成…...
使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台
🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...
GC1808高性能24位立体声音频ADC芯片解析
1. 芯片概述 GC1808是一款24位立体声音频模数转换器(ADC),支持8kHz~96kHz采样率,集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器,适用于高保真音频采集场景。 2. 核心特性 高精度:24位分辨率,…...
docker 部署发现spring.profiles.active 问题
报错: org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...
