【C语言零基础】通关01: 初识C语言
目录1. 初识C语言2. C语言的历史和辉煌2.1 历史2.2 C语言的活跃度3. 学习C语言需要什么工具3.1 翻译工具编译器链接器3.2 编译器的对比4.第一个C语言程序4.1 VS项目源文件头文件介绍4.2 第一个C语言函数4.3 main函数主函数4.4关键字(保留字4.5库函数和头文件4.6 注释4.6.1 为什么要写注释4.6.2 注释的形式1. 初识C语言C语言是什么呢C语言是一门计算机语言是人和计算机交流的语言我们人与人的交流会用到汉语英语或者更多语言这个语言被称为自然语言那么人与计算机应该怎么交流呢我们可以使用计算机语言我们通过计算机语言给算机下达指令让计算机来帮我们完成各种工作。C语言就是计算机语言的一种当然计算机语言还包括C/Java/Go/Python。2. C语言的历史和辉煌2.1 历史C语言最初是作为Unix系统的开发工具而发明的Unix是桌面操作系统还有其他的一些桌面操作系统例如windowslinuxmacOS手机操作系统有ios安卓鸿蒙时间事件1969Unix系统诞生肯·汤普森Ken Thompson与丹尼斯·里奇Dennis Ritchie在贝尔实验室开发了Unix操作系统最初用汇编语言编写。1969B语言诞生为了便于移植Unix汤普森在BCPL语言基础上发明了B语言。1972C语言诞生丹尼斯·里奇在B语言基础上重新设计新语言取代了B语言故命名为C语言。1973Unix用C重写整个Unix系统用C语言重写C语言从此快速流传广泛应用于操作系统和系统软件开发。1988C语言标准化美国国家标准协会ANSI正式将C语言标准化C语言开始稳定和规范化。至今长盛不衰C语言至今仍在TIOBE编程语言排行榜稳居前三。C89/C90使用的最为广泛2.2 C语言的活跃度根据TIOBE编程社区指数全球公认的编程语言流行度指标C语言长期稳居前三名是编程界当之无愧的“常青树”。3. 学习C语言需要什么工具计算机只能够理解二进制例如100101不能够理解人类的自然语言但如果要人类使用二进制的方式对计算机下达指令对人类的要求又太高了。。。那么有没有好的解决方法呢???✅答案是有的传统编程中人类使用计算机语言跟计算机沟通如上图绿色方块中也就是我们常说的代码这种计算机语言更接近自然语言人类学习起来更为简单但是计算机只理解二进制不理解计算机语言于是我们就需要一个翻译工具那么我用的VS就可以作为一种翻译工具。AI编程“时代。。。有了AI的加入人类写代码就更为方便了人类可以使用自然语言直接跟AI沟通让AI写出代码并且AI懂各种计算机语言。但是AI不能百分百正确这时就需要人类审查评估对AI给出反馈之后就可以把生成好的正确的代码丢给翻译工具让翻译工具生成二进制指令。3.1 翻译工具编译器链接器C语言是一门编译型计算机语言C语言源代码都是文本文件C语言代码是放在.c为后缀的文件中的文本文件本身无法执行必须通过编译器和链接器的处理生成二进制的可执行文件可执行文件才能在计算机上执行来完成任务。一个工程一般都会有多个源文件组成下图所演示了源程序经过编译器和链接器处理的过程。每个C语言代码.c文件通过编译器编译后生成目标文件obj文件多个目标文件再通过链接器链接生成可执行程序.exe文件也就是二进制信息。3.2 编译器的对比那么常见的编译器有哪些呢C语言的比如msvc/clang/gcc编译器特点维护方GCC跨平台、成熟、优化稳定、支持语言多开源社区维护Clang基于LLVM错误提示更友好编译速度快macOS默认苹果AppleMSVCWindows平台官方C编译器集成在Visual Studio中微软Microsoft直接用编译器学习成本太高因此有了集成开发环境IDE如VS2026XCode,CodeBlocks,DecC,Clion等。集成开发环境IDE用于提供程序开发环境的应用程序一般包括代码编辑器、 编译器 、 调试器和图形用户界面 等工具集成了代码编写、代码分析、代码编译、代码调试、构建等功能。VS2026 集成了MSVC安装包较大一些10G安装简单无需多余配置使用起来非常方便并且默认中文XCode 集成了clang苹果电脑上的开发工具CodeBlocks 集成了gcc这个工具比较小众需要配置环境不太推荐DevC 集成了gcc小巧但是工具过于简单对于代码风格的养成不好一些竞赛使用, 安装简单但官方不再维护Clion 是默认使用CMake构建编译器是可以配置的个人可以申请免费使用mac也可安装⚠️补充VSCode不是集成是编辑器-功能非常强大支持各种插件扩展可以搭建C的开发环境但学习成本高不建议初学者。AI也可搭建环境但必须先学会智能体。4.第一个C语言程序4.1 VS项目源文件头文件介绍在VS2026上写一个C语言程序是以项目工程的形式来管理代码的一共分为3步创建项目工程创建.c 文件写代码❗️不建议直接写.c文件容易让代码“裸奔”。下面跟着芊芊来写第一个C语言程序1.创建项目工程1️⃣打开VS2026–创建新项目2️⃣空项目–下一步–创建❗️项目名称要有意义尽量不使用中文特殊字符空格❗️位置要按自己的想法管理起来路径中尽量不使用中文特殊字符空格。创建.c文件C语言把.c为后缀的文件称为源文件把.h为后缀的文件称为头文件。1️⃣鼠标右键源文件–添加–新建项如果找不到解方案管理资源器在菜单栏–视图中解决方案管理资源器可拖拽到自己喜欢的位置2️⃣C --名称写一个合适的名字–添加❗️名称后缀为.c如果显示如下图请点击显示所有模版那么到这里第二步完成接下来我们来认识环境上方框为菜单栏左方框为解决方案资源管理器是用来管理项目文件的绿色的部分就是我们平常写代码的地方。4.2 第一个C语言函数写代码首先我们让AI帮我写一个代码功能是在屏幕上输出“hello C”.不是使用Deepseek写是用AI智能体opencode来写#includestdio.hintmain(){printf(hello C\n);return0;}那么为什么这么写呢代码按照C语言的语法规则写C首先学的是语法规则。4.3main函数主函数如上方代码第三行所示C程序从main函数开始执行main函数是程序的入口有且只有一个即使有多个.c文件也只能有一个main函数)。main函数前面的intinteger)表示整型类型表示函数执行结束返回一个整型类型的值也就是整数所以main函数的最后写return返回 0前后呼应。main函数的标准写法如下intmain(){//代码是写着这里的//...return0;}⚠️⚠️⚠️/n可以用于换行一条语句结束后必须加上代码中不能有中文符号如4.4关键字(保留字❓为什么在前面代码中intreturn可以直接用呢其实C语言中有一批保留的名字的符号比如int、if、return这些符号被称为保留字或者关键字。关键字有特殊意义是留给C语言自己用的创建标识符的时候不能和关键字重复不能自己创建关键字C语言的32个常见关键字如下autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunionunsignedvoidvolatilewhile注 在C99标准中加入了inline、restrict、Bool、Complex、Imaginary等关键字。include不是关键字下方链接是关于关键字的介绍关键字4.5库函数和头文件在上面的代码中有一句代码如下printf(hello C\n);printf是库函数功能是在标准输出设备一般指计算机上的打印信息。上面的代码是使用printf函数打印一串字符只要把想要打印的一串字符放在双引号中就会被打印到屏幕上。字符串末尾的\n是换行的意思打印完数据后就会自动换行到下一行后续如果还有数据打印的话就在下一行上打印了。C语言中把双引号括起来的一串字符称为字符串如“abc”;C语言中把单引号括起来的一个字符称为字符比如‘x’‘a’。这里的printf函数也可以用来打印其他类型的数据比如整型数据#includestdio.hintmain(){printf(%d\n,100);printf(%d\n,200);return0;}结果如下想要调试结果点调试菜单栏中–开始执行不调试再比如再比如打印字符和浮点型就是小数includestdio.hintmain(){printf(%d\n,100);//打印整形printf(%c\n,x);//打印字符printf(%f\n,3.14159);//打印浮点型默认小数点后六位return0;}结果如下这里的 %d, %c , %f 等是占位符会被后边的值替换。那什么是库函数呢预先编写好、经过测试、打包成库Library并供开发者直接调用的函数就是库函数它们不属于编程语言本身而是语言配套的标准库或第三方提供的代码集合。这里专门指的是C语言配套的标准库中的函数。一个系列的库函数一般会声明在同一个头文件中所以库函数的使用要包含对应的头文件。如上面的代码所示#include stdio.h就是一个头文件printf 函数需要包含的就是 stdio.h 这个头文件stdio是standard input ouput的缩写是标准输入输出的意思在C语言中只要和输入输出有关的操作都需要包含这个头文件。库函数比较多想要了解可参考链接库函数4.6 注释注释是给程序员看的信息用于解释代码逻辑功能或注意事项编译器忽略注释不会影响程序的实际运行注释反映了程序员的素质。4.6.1 为什么要写注释注释可以提高代码可读性方便自己和他人理解。临时屏蔽某段代码调试时常用。4.6.2 注释的形式那么我们怎么对一段代码进行注释呢早期的注释/**/的注释形式以/*开始以*/结束中间所有内容可跨多行都是注释。例如printf(%d,100);/*打印整型类型的数据使用%d*//* printf(%c\n, x); printf(%f\n, 3.14159) */这种注释不能嵌套以/*开始遇到第一个*/注释就结束了。例如/* int main() { printf(%d\n,100);/*打印整型数据使用%d*//* printf(%c\n,a); printf(%f\n,3.14159);*/return0;}*/当我们想对这一整段代码进行注释但return 0没有被注释掉为什么呢因为这个注释嵌套了当代码识别到第一个*/就停止注释了使用一般不建议使用第一种注释方法。//的注释形式因为上一个方法容易嵌套所以C在C99时引入//的注释形式。想要对一段代码进行注释可以选定代码在菜单栏中找到注释如上图左边是注释右边是取消注释快捷键先K再C/U或者在代码行前加上//从//开始直到该行末尾的内容都是注释//更简洁适合单行或行尾注解所以现代C语言C99及以后普遍支持//。例如intmain(){printf(%d\n,100);//打印整形printf(%c\n,x);//打印字符printf(%f\n,3.14159);//打印浮点型默认小数点后六位return0;}//后为注释内容。

相关新闻

《ESP32 物联网全栈实战-11》小程序进阶

《ESP32 物联网全栈实战-11》小程序进阶

第 11 篇:小程序进阶——ECharts 图表 历史查询 告警推送 上篇做了一个能看能控的基础版。这篇加上三个进阶功能:温度曲线(ECharts)、历史数据查询(HTTP API InfluxDB)、阈值告警推送。1. 集成 ECharts …

2026/8/5 23:55:04 阅读更多 →
【机器学习入门】多元线性回归超详细教程 —— 从原理到 sklearn 代码全实现

【机器学习入门】多元线性回归超详细教程 —— 从原理到 sklearn 代码全实现

文章目录前言一、线性回归是什么?二、数据集介绍三、sklearn LinearRegression API 详解3.1 构造函数参数3.2 常用属性3.3 常用方法四、代码案例:多元线性回归预测血压五、结果分析5.1 回归方程5.2 系数解读5.3 模型评估六、避坑指南:那些年我…

2026/8/5 23:55:04 阅读更多 →
【MV】Stereo Vision 1: Fundamentals of Multiple View Geometry

【MV】Stereo Vision 1: Fundamentals of Multiple View Geometry

文章目录1、多视几何2、三角化(Triangulation)3、双目立体视觉原理1、多视几何 图注: 同一三维点 (X) 在不同相机中的投影满足 (xiKi[Ri∣ti]X)(x_iK_i[R_i\mid t_i]X)(xi​Ki​[Ri​∣ti​]X),每幅图像对应独立的内参与外参。 图…

2026/8/5 23:55:04 阅读更多 →

最新新闻

JMeter教程|0到1学会接口性能压测第12课-JMeter并发测试

JMeter教程|0到1学会接口性能压测第12课-JMeter并发测试

JMeter是一款开源免费的接口性能压测工具,在企业中用的较为广泛,上节我们学习了JMeter常用监听器。今天分享JMeter并发测试,后续文章都会系统分享干货,带大家从0到1学会JMeter,另外还有教程等同步资料,文末…

2026/8/6 0:54:24 阅读更多 →
ncmdump终极指南:专业解密网易云音乐NCM格式的完整方案

ncmdump终极指南:专业解密网易云音乐NCM格式的完整方案

ncmdump终极指南:专业解密网易云音乐NCM格式的完整方案 【免费下载链接】ncmdump ncmdump - 网易云音乐NCM转换 项目地址: https://gitcode.com/gh_mirrors/ncmdu/ncmdump 在数字音乐版权保护日益严格的今天,网易云音乐NCM格式转换成为众多音乐爱…

2026/8/6 0:54:24 阅读更多 →
AI写产品评测到底靠不靠谱?揭秘92%的评测文章被算法识别的3个致命破绽

AI写产品评测到底靠不靠谱?揭秘92%的评测文章被算法识别的3个致命破绽

更多请点击: https://codechina.net 第一章:AI写产品评测到底靠不靠谱?揭秘92%的评测文章被算法识别的3个致命破绽 当AI生成的评测文章在搜索引擎中批量涌现,平台反作弊系统正以前所未有的精度将其标记为“低信度内容”。第三方实…

2026/8/6 0:54:24 阅读更多 →
AI学日语到底靠不靠谱?实测12款工具+378小时数据对比,这3个模型真正改变学习轨迹

AI学日语到底靠不靠谱?实测12款工具+378小时数据对比,这3个模型真正改变学习轨迹

更多请点击: https://kaifayun.com 第一章:AI学日语到底靠不靠谱?实测12款工具378小时数据对比,这3个模型真正改变学习轨迹 过去三个月,我们对12款主流AI日语学习工具(含ChatGPT-4o、Claude 3.5 Sonnet、G…

2026/8/6 0:54:24 阅读更多 →
政务外网环境下视频监控资源整合:新增仓库接入实施方案

政务外网环境下视频监控资源整合:新增仓库接入实施方案

一、现状本项目处于政务外网严格的网络边界环境内。原仓库视频监控系统已稳定运行,包含13路存量监控点位,覆盖主要出入口及核心库区。二、需求接入策略与技术路线: 针对本次新建的12路监控摄像头,将严格遵循政务外网接入规范&…

2026/8/6 0:53:24 阅读更多 →
excel怎么转txt?盘点2026年7款PDF格式转换工具,覆盖单转与批量导出

excel怎么转txt?盘点2026年7款PDF格式转换工具,覆盖单转与批量导出

上个月给公司投标,好不容易把技术方案定稿,甲方突然说还得附一份单独的材料清单,格式必须是纯文本TXT。我手里只有一份完整的方案PDF,打开看着满屏的表格和条款,心里直犯嘀咕:难道要手动敲一遍?…

2026/8/6 0:52:23 阅读更多 →

日新闻

深入解析LimboAI C++内核:架构设计与性能优化实战

深入解析LimboAI C++内核:架构设计与性能优化实战

1. 项目概述:为什么我们需要深入LimboAI的C内核?如果你是一名使用Godot引擎的游戏开发者,尤其是对AI行为逻辑有较高要求的项目,那么LimboAI这个名字你大概率不会陌生。它作为Godot 4生态中一个备受瞩目的行为树与状态机插件&#…

2026/8/6 0:00:06 阅读更多 →
Unity 2D游戏敌人AI系统:基于PlayMaker状态机与2D Toolkit的实战开发

Unity 2D游戏敌人AI系统:基于PlayMaker状态机与2D Toolkit的实战开发

1. 项目概述与核心思路大家好,我是老张,一个在游戏开发一线摸爬滚打了十多年的老码农。今天咱们接着聊《空洞骑士》风格2D动作游戏的Demo制作。上一期我们搭好了基础框架,处理了角色移动和碰撞,这一期,我们要让游戏世界…

2026/8/6 0:00:06 阅读更多 →
被动防火门市场前景发展趋势

被动防火门市场前景发展趋势

被动防火门依靠材质结构、密闭构造阻隔烟火蔓延,无需电控启动,是建筑被动消防系统核心构件,行业依托新规管控、城市更新、工业安全升级迎来稳定扩容,整体朝着合规化、专项化、低碳化、智能化方向发展。现阶段 GB12955‑2024 新版国…

2026/8/6 0:00:06 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/5 15:00:43 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/5 13:13:56 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/5 10:20:36 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/5 23:28:39 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/5 21:00:14 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/5 23:46:51 阅读更多 →