本套课程将会从0基础讲解C语言核心技术,适合人群:
-
大学中开设了C语言课程的同学
-
想要专升本或者考研的同学
-
想要考计算机等级证书的同学
-
想要从事C/C++/嵌入式开发的同学
分享不易,耗时耗力,麻烦给个不要钱的关注和赞吧
更多教程请关注公众号:墨轩学习网 , B站:墨轩大楼
一、C语言概述
1.1 什么是C语言
一提到语言这个词语,自然会想到的是像英语、汉语等这样的自然语言,因为它是人和人交换信息不可缺少的工具。
而今天计算机遍布了我们生活的每一个角落,除了人和人的相互交流之外,我们必须和计算机角落。
用什么的什么样的方式和计算机做最直接的交流呢?人们自然想到的是最古老也最方便的方式——语言,而C语言就是人和计算机交流的一种语言。
语言是用来交流沟通的。有一方说,有另一方听,必须有两方参与,这是语言最重要的功能:
- 说的一方传递信息,听的一方接收信息;
- 说的一方下达指令,听的一方遵循命令做事情。
语言是人和人交流,C语言是人和机器交流。只是,人可以不听另外一个人,但是,计算机是无条件服从。
语言有独特的语法规则和定义,双方必须遵循这些规则和定义才能实现真正的交流。
1.2 为什么要学习C语言
1.2.1 C语言的优点
性能:C语言编写的程序通常运行速度快,因为它生成的机器级代码非常接近硬件。
控制能力:C语言提供了对硬件的直接访问能力,包括内存地址的操作,这对于系统级编程非常重要。
可移植性:遵循ANSI C标准的程序可以在多种硬件平台上编译并运行,具有良好的可移植性。
灵活性:C语言允许直接操作位、字节和地址,这使得程序员可以编写出非常灵活的程序。
标准库:C语言有一个功能强大的标准库,它提供了基本的数据结构和算法,以及处理输入输出的函数。
广泛应用:C语言被用于系统软件、嵌入式系统、高性能服务器和客户端应用程序、游戏开发等多个领域。
基础语言:很多现代高级编程语言(如C++, C#, Java, Python)的语法都受到C语言的影响,学习C语言有助于更好地理解这些语言。
1.2.2 C语言开发工具
ubuntu编译器gcc/g++,GNU组织开发的开源免费编译器
Window编译器MinGW windows下的编译器
Visual c++: 微软vc++自带编译环境
Dev-C++:可移植的C/C++IDE
Vs Code/visual studio编译器
notepad++/subline支持众多计算机语言
本教程主要为Linux平台下的C语言开发,采用Ubuntu下的gcc编译器,windows下推荐使用Dev-C,VScode或者 visual studio,需要软件安装包的可以评论区留言。
好辣!枯燥乏味的概念我知道你们不想看,我们直接干正题吧O(∩_∩)O哈哈~
1.3 第一个语言程序
1.3.1 程序代码
废话不多说,直接看代码:
/*
多行注释
创建C语言程序的步骤:
1. 新建文件:File -> New File
2. 按下Ctrl +s 保存文件,将文件保存到共享目录中
3. 文件命名:注意后缀名一定要是.c
*/
//注释:类似于读书时写的笔记,写给自己和别人看的,
//程序运行时,不会被执行
// C 语言中的单行注释:一次注释一行内容
// 引入头文件:
// 头文件:看成工具,里面封装了一些代码,我们可以直接使用
// stdio.h 看成跟输入输出相关的工具
#include <stdio.h>
// 程序的入口:打开C语言程序大门,没有main的话程序执行不起来
// 固定名字:main (注意名字不要写错了)
int main(){
//printf("内容") 打印输出语句,会在控制台打印括号中的内容
printf("社会我攀哥");
// 默认情况下,打印输出是不会换行
// 如果需要换行,那么可以在需要换行的位置加\n
printf("人狠\n也啰嗦\n");
// return 表示返回执行main最终的到的结果
return 0;// 暂时都写成0
}
需要注意的问题:
1. 在写完代码之后,记得一定要先按 ctrl+s 保存代码,然后再去编译,否则看不到你修改代码的效果
2. 在编写代码的时候,所有的标点符号,都是在输入法为英文状态下去写,出现中文符号,会报如下类似的问题:
1.3.2 编程程序
编译程序:
1. 在虚拟机中使用 cd 命令,进入到代码所在的目录
2. 使用 gcc 编译程序
编译的格式:
gcc 程序文件名 -o 执行程序名
比如:
gcc Demo01.c -o main
表示: 将 Demo01.c 这个C源文件程序,编译成 可执行程序main
3. 上面编译之后,main 就是一个可执行程序名(类似于软件的快捷方式),可以通过他来运行程序
./执行程序名
比如:
./main
运行效果
练习:新建一个 C 语言程序,打印自我介绍
姓名: XXX
年龄:XXX
学校:XXXXX
1.4 为什么要编译程序
1.4.1 什么叫做程序?
书上说,程序=数据结构+算法,我觉得这个说法对小白来说太不礼貌了,因为根本不懂。
给大家举个例子,我现在很渴,想要喝水,但是我不想自己去买水,于是拿了一张纸,写下了如下的内容:
- 下楼
- 去超市
- 买肥宅快乐水
- 付钱
- 上楼
- 喂我喝水
然后我把纸交给了乖巧听话美丽大方的小丽,小丽拿着这张纸,按照纸上的内容一步步照做,我最终喝到了水。
那么我刚才写在纸上的,流程步骤,就是程序。小丽就是执行程序的电脑。我们编写程序,实际上就是要告诉电脑我们要做什么事情,应该按照怎样的步骤,完成这件事情。
我们来转换一下:
1. 纸相当于刚才写的.c 文件
2. 纸上的内容:完成某件事的步骤(流程)-》就是程序
3.小丽:完成这件事的人,电脑
1.4.2 为什么要编译程序
写完代码为什么要使用 gcc 去编译 (所谓的编译应该理解成翻译)
如果小丽是中国人,写在纸上的步骤,她是看得懂得,但是假如小丽她是日本省的人,只会叽哩哇啦,看不懂中文。这个时候需要将纸上的步骤翻译成叽哩哇啦语。
由于计算机内部只能识别 0 和 1,也就是你写的代码,电脑看不懂,这个时候就需要要将程序翻译(编译)成计算机能识别的二进制文件。
所以:编译程序的目的,就是将自己写的程序翻译成计算机能识别的二进制文件
格式: gcc 需要编译的文件 -o 编译之后生成的文件名
比如: gcc Demo01.c -o main
表示,将Demo01.c 文件编译成名字为main的可执行文件(二进制文件)
main 就是编译 Demo01.c 产生的计算机能识别的二进制文件名,这个名字可以自定义
运行程序
格式: ./可执行程序文件名
比如: ./goc
需要注意的问题:
- 每次修改代码之后,必须先按 ctrl+s 保存代码,再编译运行
- 每次修改代码之后,都需要重新使用 gcc 编译一下。