C语言:基础知识
创作不易,友友们给个三连吧
一、C语⾔的基本概念与发展历史
1.1 人和计算机进行交流的语言
通常,我们使用英语、中文等语言来进行两个人之间的交流。这意味着当我们想要和他人进行交流时,我们需要一种语言来表达自己的感受。同样的,当我们想要和计算机进行交流时,我们也需要一种语言,可以通过该语言向计算机提供信息,传达指令,我们称该语言为计算机语言。
然而C语言只不过是众多语言中的一种,像C++/Java/Go/Python都是计算机语⾔。
1.2 C语言的辉煌和历史
C 语⾔最初是作为 Unix 系统的开发⼯具⽽发明的。
类似的操作系统还有:windows、linux、macos(苹果)……
1.3“C生万物,编程之本”
C语言的四大领域:
游戏:目前很多游戏客户端都是基于C++开发的,除了一些网页游戏可能不是,所以如果想从事游戏开发行业学好C++是没错的。
服务器端开发:很多互联网公司的后台服务器程序都是基于C++开发的,而且大部分是linux,unix等类似操作系统。如果你想从事这样的工作,需要熟悉linux操作系统及其在上面的开发,熟悉数据库开发,精通网络编程。
数字图像处理:现在市面上有很多VC++图像处理的书籍,可见在这个领域的应用软件开发也是占了很大比重,需要深入学习数字图像处理和模式识别等课程。
虚拟现实仿真:这个也是发展很快的计算机领域,目前各种数字地球,数字城市,虚拟地理环境什么的,出现了这方面的大量应用
C语言出现时间较早,其他语言基本都是在C语言之后出现,或者在C语言的基础上进行创造,比如Java,C++是两门很有代表性的语言。
并且 学习了之后,语言的通用性还是存在的,所以在学习其他的语言的时候,学习起来就相对会简单一点。
TIOBE网站上可以查到每年编程语言的使用排名,其中c语言常见保持前3,
网址:https://www.tiobe.com/tiobe-index/
二、编译器的选择和使用方法
2.1 编译和链接
C语⾔是⼀⻔编译型计算机语⾔,C语言源代码都是文本文件,文本文件本身无法执行,必须通过编译器翻译和链接器的链接,生成二进制的可执行文件,可执行文件才能执行。(计算机识别的是二进制指令) C语⾔代码是放在 .c 为后缀的⽂件中的,要得到最终运⾏的可执⾏程序,中间要经过编译和链接2个过程。
⼀个工程⼀般都会有多个源文件组成,如下图所示,演示了源程序经过编译器和链接器处理的过程。
.c→.obj→.exe
⼀个工程⼀般都会有多个源文件组成,如下图所示,演示了源程序经过编译器和链接器处理的过程。
1. 每个源文件(.c)单独经过编译器处理⽣成对应的目标⽂件(.obj为后缀的⽂件)
2. 多个⽬标⽂件和库文件经过链接器处理⽣成对应的可执行程序(.exe⽂件)
2.2 编译器对比和选择
C语⾔是⼀⻔编译型的计算机语⾔,需要依赖编译器将计算机语⾔转换成机器能够执⾏的机器指令。
那我们常⻅的C语⾔编译器都有哪些呢? ⽐如:msvc、clang、gcc 就是⼀些常⻅的编译器,当然也有⼀些集成开发环境如:VS2022、 XCode、CodeBlocks、DevC++、Clion等。
集成开发环境(IDE):⽤于提供程序开发环境的应⽤程序,⼀般包括代码编辑器、 编译器 、 调试器 和 图形⽤⼾界⾯ 等⼯具。 集成了代码编写功能、分析功能、编译功能、调试功能等⼀体化的开发软件服务套。
• VS2022 集成了MSVC(安装报包较⼤⼀些,安装简单,⽆需多余配置,使⽤起来⾮常⽅便)
• XCode 集成了clang(苹果电脑上的开发⼯具)
• CodeBlocks 集成了gcc(这个⼯具⽐较⼩众,需要配置环境,不太推荐)
• DevC++ 集成了gcc(⼩巧,但是⼯具过于简单,对于代码⻛格的养成不好,⼀些竞赛使⽤)
• Clion 是默认使⽤CMake,编译器是可以配置的(⼯具是收费,所以暂时推荐⼤家使⽤)
• VSCode 具有强大的插件系统,可安装各种插件,来搭建c/c++的开发环境(不推荐新手使用)
新手推荐使用VS2022社区版本,免费并且使用方便。
2.3 VS的优缺点和下载方法
优点:
• VS2022 是⼀个主流的集成开发环境,企业中使⽤较为普遍
• VS2022 包含了:编辑器+编译器+调试器,功能强⼤
• 直接安装即可使⽤,基本不⽤额外配置环境,上⼿容易
• 默认界⾯是中⽂的,初学者友好
缺点:
• 功能丰富,安装包⼤,占⽤空间多。
下载方法:https://visualstudio.microsoft.com/zh-hans/downloads/
安装教程:https://www.bilibili.com/video/BV11R4y1s7jz/
2.4 VS项目和源文件、头文件介绍
在项⽬中就可以添加源⽂件和头⽂件。
C语⾔把 .c 为后缀的⽂件称为源⽂件,把 .h 为后缀的⽂件称为头⽂件。
2.5 在VS上创建新项目
2.5.1 写代码的前的步骤
1、创建项目(代码是在项目中管理的)
2、创建.c文件
3、写C语言代码,邀严格按照C语言的语法来写!!
2.5.2 项目名称
1、项目名称最好有自己的实际意义
2、项目名称最好不要使用后中文
3、不要使用特殊字符
2.5.3 项目存储路径
1、代码的位置邀自己找一个熟悉的路径维护起来
2、这个代码的路径不要包括空格、特殊字符、中文字符
三、main函数
每个 C 语⾔程序不管有多少⾏代码,都是从 main 函数开始执⾏的, main 函数是程序的⼊⼝, main 函数也被叫做:主函数。 main 前⾯的 int 表⽰ main 函数执⾏结束的时候返回⼀个整型类 型的值。所以在 main 函数的最后写 return 0; 正好前后呼应。
• main函数是程序的入口
• main函数有且仅有⼀个
• 即使⼀个项⽬中有多个.c⽂件,但是只能有⼀个main函数(因为程序的入口只能有⼀个)
• main函数可以出现在任意位置,若在主函数中调用的哪些函数,则必须在main函数之前对所调用的函数进行声明,或者包含其被调用函数的头文件
• 一般约定返回0,在c语言中正常在返回0,异常会返回非0
int main() { printf("hello C\n"); return 0; }
在VS2022上运⾏代码的快捷键: Ctrl+f5
四、关键字介绍
C语⾔中有⼀批保留的名字的符号,⽐如: int 、 if 、 return ,这些符号被称为保留字或者关键 字。
• 关键字都有特殊的意义,是保留给C语言使用的
• 程序员自己在创建标识符的时候是不能和关键字重复的
• 关键字也是不能自己创建的。 C语言的32个关键字如下:
注:在C99标准中加⼊了 inline 、 restrict 、 _Bool 、 _Comploex 、 _Imaginary 等关键字。 ⼀些关键字⼤家可以去了解⼀下,不过使⽤最多的还是上⾯的32个关键字。
注:https://zh.cppreference.com/w/c/keyword(C语⾔关键字的全部介绍)
注: difine不是关键字,他是编译器实现的用来定义宏的预处理指令,不是c语言中的内容。
五、字符和ASCII编码
在键盘上可以敲出各种字符,如:a,q,@,#等,这些符号都被称为字符,C语⾔中字符是⽤单引号 括起来的,如:'a','b','@'。单个字符的打印可以使用%c来指定格式。
我们知道在计算机中所有的数据都是以二进制的形式存储的,那这些字符在内存中分别以什么样的⼆进制存储的呢?如果我们每个⼈⾃⼰给这些字符中的每个字符编⼀个⼆进制序列,这就叫做编码,为了⽅便⼤家相互通信,不造成混乱,后来美国国家标准学会(ANSI)出台了⼀个标准 ASCII 编码,C语言中的字符就遵循了ASCII 编码的⽅式。
参考:https://zh.cppreference.com/w/cpp/language/ascii
我们不需要记住所有的ASCII码表中的数字,使⽤时查看就可以,不过我们最好能掌握⼏组特殊的数据:
• 字符A~Z的ASCII码值从65~90
• 字符a~z的ASCII码值从97~122
• 对应的大小写字符(a和A)的ASCII码值的差值是32
• 数字字符0~9的ASCII码值从48~57 • 换⾏ \n 的ASCII值是:10
• 在这些字符中ASCII码值从0~31 这32个字符是不可打印字符,无法打印在屏幕上观察
• 字符其实也属于整型家族
比如:可打印字符展示(32-127)
#include int main() { int i = 0; for (i = 32; i