1.什么是C语言?
先来引入一下:
人与人之间交流说的汉语、日语、英语等使用的是自然语言,而人与计算机交流是使用计算机语言。
计算机语言有三种:机器语言、低级语言(汇编语言)、高级语言。
计算机语言到目前为止已经发现有上千种,例如Python/C++/Java/Go,C语⾔就是众多计算机语⾔中的⼀种。
2.编译器的选择 VS2022
2.1编译和链接
C语言是一门编译型的语言,是高级语言,把高级语言转化成机器语言的过程叫做编译;C语言源代码都是文本文件,文本文件本身是无法执行的,必须通过编译器翻译和链接器的链接,生成二进制的可执行文件,可执行文件才能执行。
2.2编译器的对比
前面说到C语⾔是⼀⻔编译型的语⾔,它需要依赖编译器将计算机语⾔转换成机器能够执⾏的机器指令。
常⻅的C语⾔编译器有msvc、clang、gcc;
还有一些集成开发环境如:VS2022、 XCode、CodeBlocks、DevC++、Clion等。
集成开发环境(IDE)⽤于提供程序开发环境的应⽤程序,⼀般包括代码编辑器、编译器、调试器 和图形⽤⼾界⾯等⼯具。集成了代码编写功能、分析功能、编译功能、调试功能等⼀体化的开发软 件服务套。
• VS2022集成了MSVC(安装包较⼤,安装简单,⽆需多余配置,使⽤起来⽅便)
• XCode集成了clang(苹果电脑上的开发⼯具)
• CodeBlocks集成了gcc(⽐较⼩众,需配置环境)
• DevC++集成了gcc(⼩巧,但是⼯具过于简单)
• Clion是默认使⽤CMake,编译器是可以配置的(⼯具收费)
整体考虑,比较推荐⼤家安装VS2022的社区版本学习,免费,使⽤⽅便,⼯作中常⻅。
2.3 VS2022的优缺点
优点:
• VS2022是⼀个主流的集成开发环境,企业中使⽤较为普遍
• VS2022包含了:编辑器+编译器+调试器,功能强⼤
• 直接安装即可使⽤,基本不⽤额外配置环境,上⼿容易
• 默认界⾯是中⽂的,对初学者友好
缺点: 功能丰富,安装包⼤,占⽤空间多。
对于如何安装VS2022,文章底下有视频链接,有需要请自行查看。
3.VS项目和源文件、头文件介绍
在VS上写代码,先创建项⽬,然后在项⽬中就可以添加源⽂件和头⽂件。
C语⾔把 .c 为后缀的⽂件称为源⽂件,把 .h 为后缀的⽂件称为头⽂件。
VS中头⽂件和源⽂件的展示
4.第一个C语言程序
在VS2022中创建项目写代码并且运行的结果
运行代码按Ctrl+F5键。
5.main函数
每个C语言程序都从main函数开始执行,main函数是程序的入口,也称作主函数。
上面代码中main前面的 int 表示main函数执行结束的时候返回整型类型的值。
• main函数是程序的⼊⼝
• main函数有且仅有⼀个
• 即使⼀个项⽬中有多个.c⽂件,但是只能有⼀个main函数(也就是说,如果后面写另一个代码要用到main函数时,需把前面写的main函数注释掉)
6.注释是什么?
- 注释是对代码的说明,编译器会忽略注释,注释对代码没有实际影响;
- 注释是写给程序员自己或者其他程序员看的;
- 好的注释可以方便我们了解代码,但不用过度注释,只写必要的注释,不写没必要的注释。
6.1 C语言的两种注释形式
/**/形式 以及 双斜杠//形式
这两种注释不管哪一种,都不能放在双引号里面。
双引号里面的注释符号,会变成字符串的一部分,解释为普通符号,失去注释作用。
这个示例中,双引号里面的注释符号都被视为普通字符,没有注释作用。
6.2注释会被替换
编译时,注释会被替换成一个空格,所以min/*这里是注释*/Value会变成min Value,而不是minValue。
7.字符和ASCII编码
C语言中的字符是用单引号括起来的,如 'a','b','@','q' 等。
在计算机中,所有的数据都是以二进制的形式存储的,而C语言中的字符是用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个字符是不可打印字符;无法打印在屏幕上观察
单个字符的打印可用%c来指定格式:
这是可打印字符展示
8.字符串和\0
C语言中使用双引号括起来的一串字符称为字符串,如"abcdefghi",就是一个字符串。
字符串可用%s来指定格式:
这里有个需要注意的点:C语言字符串的末尾隐藏着一个\0字符,\0字符是字符串的结束标志。
VS2022的监视窗⼝观察字符串
对于字符串"world",实际上看到了5个字符,但实际末尾还隐藏着\0转义字符,只不过在使用库函数printf()打印字符串或者strlen()计算字符串长度时,遇到\0就自动停止了。
9.转义字符
C语⾔中的转义字符有:
• \? :在书写连续多个问号时使⽤,防⽌他们被解析成三字⺟词
• \' :表⽰字符常量'
• \" :表⽰⼀个字符串内部的双引号
• \\ :表⽰⼀个反斜杠,防⽌它被解释为⼀个转义序列符
• \a :警报,这会使得终端发出警报声或出现闪烁,或者两者同时发⽣。
• \b :退格键,光标回退⼀个字符,但不删除字符
• \f :换⻚符,光标移到下⼀⻚
• \n :换⾏符
• \r :回⻋符,光标移到同⼀⾏的开头
• \t :制表符,光标移到下⼀个⽔平制表位,通常是下⼀个8的倍数
• \v :垂直分隔符,光标移到下⼀个垂直制表位,通常是下⼀⾏的同⼀列
• \0 :null字符,代表没有内容,ASCII码值是0
标黄的是比较常用的转义字符。
10.关键字介绍
C语言中如 int、if、char、while这些保留名字的符号,称为保留字或者关键字。
- 关键字都有其特殊意义,是保留给C语言使用的
- 在创建标识符是不能与关键字重复
- 关键字不能由自己创建
C语言中使用最多的32个关键字:
最后
C语言要学的知识很多,这次先到这里,下次再继续发布文章。
若发现哪里有没写对的地方,还请大家在评论区帮忙指正哦。
VS2022安装教程:https://www.bilibili.com/video/BV11R4y1s7jz/