dd#应我的某位朋友的诉求,特作此教程(我明明擅长的是python来着😔)#
#本教程适合一些有Windows操作基础的人#
各位互联网上的朋友大家好啊!本人是一个专科学生目前在企业实习阶段,在校期间有朋友说让我教他C语言。我就想着教一个也是教,抽空写个博客吧也许还能帮到其他人呢?
那么正片开始:
一、计算机基础部分
在教程正式开始之前,需要了解一下我们计算机的基础知识
基础知识一:由冯诺依曼提出的计算机架构
冯诺依曼架构示意图——图片转载自百度百科
是不是看不懂?我也看不懂(😜)
其实计算机的结构很简单,主要由五大部件组成:
输入/输出设备(I/O设备):键盘鼠标负责输入,显示屏打印机负责输出存储器:包括内存、缓存和硬盘(注意:这三者完全不同,可别像买手机时问"内存多大"那样混淆哦)运算器和控制器:简单理解就是CPU啦
看,是不是一下子就明白啦? 什么!你说还是看不懂?那很完蛋了。
基础知识二:编程语言
在计算机中主要存在三种编程语言:
高级语言
高级语言是接近人类自然语言的编程语言,具有较高的抽象层次,开发者无需直接操作硬件细节。这类语言通常通过编译器或解释器转换为机器语言。语法直观,适合开发复杂应用。
特点:
跨平台性强(如Java、Python)。支持面向对象、函数式等编程范式。典型代表:Python(简洁易读)、Java(跨平台)、C++(高性能)。
汇编语言
汇编语言是低级语言,与机器语言一一对应,但使用助记符(如MOV、ADD)代替二进制指令。需通过汇编器转换为机器语言,常用于硬件操作或性能优化场景。
特点:
直接操作寄存器、内存等硬件资源。执行效率高,但开发难度大。依赖特定处理器架构(如x86、ARM)。
机器语言
机器语言由二进制指令(0和1)构成,是计算机直接执行的唯一语言。所有其他语言最终需转换为机器语言。不同CPU架构的机器语言不同。
特点:
无需转换,直接由CPU执行。可读性极差,难以手动编写。典型形式:二进制码或十六进制码。
基础知识三:储存单位
小学老师曾经教过计算机中都是以0101010这样的单位进行计算的,那我们常听的MB(兆)GB(吉)都是啥单位呢?
首先是两个币(这里不是B站啊喂(╯▔皿▔)╯),错了错了,是b、B:
比特(bit):也叫位,表示二进制中一个最小的单位,值是0或1。字节(Byte):八个位就是一个字节 1Byte = 8bit(注意大小写奥)。
后面就是以1024为进制的:
千字节(KB):1 KB = 1024 Byte。兆字节(MB):1 MB = 1024 KB。吉字节(GB):1 GB = 1024 MB。太字节(TB):1 TB = 1024 GB。
了解这个的时候你就明白为啥明明买的是100Mb的
宽带实际上跑出来的网速只有15MB左右了
好了基础部分到此结束。
二、环境
1、编译运行
在了解上面的基础知识后,对比我们需要学习的C语言,我们就能明白C语言属于高级语言的一种,这种语言需要相对应的环境才能让计算机听懂。C语言的运行流程如下:
C语言编写到运行全流程图(每个分支的 右边是详细流程)
当然,这一步可以只用与了解,实在看不懂可以跳过。详细可以看一下链接:
【C语言】C程序编译过程详解_c语言编译过程5步骤-CSDN博客文章浏览阅读2.6k次,点赞2次,收藏25次。本文详细阐述了C代码从源代码到可执行程序的五个关键步骤:预处理、编译、汇编、链接和运行。包括每个阶段的任务、具体处理方式以及静态链接和动态链接的区别。https://blog.csdn.net/Jacky_Feng/article/details/84067991?fromshare=blogdetail&sharetype=blogdetail&sharerId=84067991&sharerefer=PC&sharesource=wxwyyt&sharefrom=from_link
2. 第一个程序!!!
2.1编写C语言
现在终于,我们迎来了第一段程序!在桌面上新建一个文件夹,按照自己的喜好命名作为项目文件夹,并且开启显示文件后缀名。
在文件夹下新建一个文本文档输入以下内容并按ctrl+s保存:
#include
int main() {
printf("Hello, World!\n");
return 0;
}
将文件改名为day_1.c
现在,我们写好了c语言程序,但是运行不了。只能干看着。(个P啊,那我写这个玩意的意义是什么!!!(╯▔皿▔)╯)
2.2下载并使用编译器
在Windows环境下,我们没有工具来编译c语言代码,这时候就要借助MinGW来帮帮忙啦!详细过程就参考站内另一篇大佬文章吧:MinGW下载安装教程 傻瓜式操作【超详细】-CSDN博客文章浏览阅读10w+次,点赞299次,收藏370次。进入安装 MinGW 配置器的界面,耐心等待安装完成(显示 100%)即可。安装完成之后,继续点击“continue”,进入下面的对话框,这是一个名为 “MinGW Installer Manager” 的软件,借助它,我们可以随时根据需要修改 GCC 编译器的配置。_mingw下载安装教程https://blog.csdn.net/qq_38196449/article/details/136125995?fromshare=blogdetail&sharetype=blogdetail&sharerId=136125995&sharerefer=PC&sharesource=wxwyyt&sharefrom=from_link
再附上一个我自己打的包,只需要将包中的bin目录添加到环境变量中:(仅限网络条件差的同学交流学习,可能有兼容性问题,所以最好还是自己走一遍流程)MinGW.ziphttps://pan.baidu.com/s/1r7FjNffLWU9v2lOtVPtEXQ?pwd=kxh5
回到上一步中的文件夹中,在导航栏输入cmd并回车
依次输入以下命令:
gcc day_1.c -o day_1.exe #编译程序
day_1 #运行程序
输出如下:
OK!你已经学会C语言了,快拿去给同学炫耀吧!!!!哈哈哈哈!!!!!(作者此时被人打了一拳QWQ)
2.3IDE的下载使用
我们已经学会了如何编译C语言,有的同学要问了:编译太麻烦了,有没有更方便的办法?让我稍加思考:
诶!该吃饭了!☝️🤓
有的兄弟,有的。这时候就要有请另一位:’开发环境(简称:IDE;英文名:Integrated Development Environment )‘大人!!!
IDE,是用于提供程序开发环境的应用程序,一般包括代码编辑器(上文使用的文本编辑器)、编译器(MinGW)、调试器(内存控制)和图形用户界面等工具。集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。具备这一特性的软件或者软件套(组)都可以叫集成开发环境。
不理解的小朋友也没事的,就一句话总结:IDE就是可以给我们提供很多必要工具,把一堆工具集成起来,变成了一个软件,我们可以在上面开发各种程序。可以一键编译调试,还可以智能补全代码! 针对C语言的IDE市面上有许多免费的,作者钟爱VScode所以这里使用VScode转跳下载按照图片所示点击。
按照图片所示安装:
点击安装即可。第一次打开应该是这样的(这里应该是英文,但是我安装了汉化插件和其他插件所以选项和界面是不一样的,但是位置都是一样的):
根据图片所示安装插件(安装完成重启后就是中文界面了):
装c语言插件后vscode就支持c语言的编写了,到这里还差编译与运行,我们直接试试 运行: 打开刚刚我们建立的项目文件夹直接第一个,启动!!
不出所料,寄~~~ 我们手动将项目文件移动到C盘根目录C://C/ 然后在.vscode文件夹中添加两个文件launch.json和tasks.json内容如下,注意将项目目录哪儿,改到自己的目录
#launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "Debug",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "C:\\C", #改这里,不要有中文名
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"miDebuggerPath": "C:\\MinGW\\bin\\gdb.exe",#这里的路径不一样也得改
"preLaunchTask": "C Compiler",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
#tasks.json
{
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "C Compiler",
"command": "C:\\MinGW\\bin\\gcc.exe",#这里如果有不一样也得改
"args": [
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "C:\\C" #改这里
},
"problemMatcher": ["$gcc"],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
到这里就可以按ctrl+shift+B键调试,按F5一键调试输出了
运行后,有一个小黑框一闪而过。但是没有报错,不用担心,你的程序已经运行了,但是没有阻断或者显示到内部的窗口,所以一闪而过。在源码中加入getchar ()函数就可以实现一个简单的断点啦。
#include
int main() {
printf("Hello, World!\n");
getchar();
return 0;
}
按F5运行如下:
三、本次的教程就到这啦。
本人第一篇技术项博客,其中穿插着作者的皮皮属性,若有哪些地方有错误,还请各位前辈批评指正!!我们下期再见!