目录
定义
C语言是用于人与计算机交流的语言
如何从代码到实际运用
由于c语言是一门编译型计算机语言,其源代码都是文本文件(以.c为后缀的文件),其自然是无法直接执行的,这时候我们就需要用到编译器(将.c文件处理生成.obj文件即目标文件)和链接器(将多个目标文件和库文件经过处理生成以.exe为后缀的可执行文件),在这二者的依次作用下,我们可得到二进制可执行文件,这时候才能执行
编译器的选择
这里我就直接推荐使用VS2022(当前版本),推荐理由如下:
- 首先它不是单一编译器,而是集成开发环境,即包括代码编辑器、编译器、调试器和图形用户界面等工具,集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套,功能强大,当然,其他集成开发环境大多也具有相同的功能,这个看个人对哪个更熟悉,说到底都是工具嘛,用的趁手的是最好的
- 页面自定义个性化程度高,你可以按照自己的喜好来设置相关页面
- 该工具在企业中使用较为普遍,一开始就用这个好处大大的
- 代码运行条件较为严格,有益于养成更好的写代码的习惯
关于其他编译器以及集成开发环境,这里就不多做介绍(主要是小编自己也不怎么了解啦)
main函数
一个c语言程序,无论其有多少行代码,都是从main函数开始执行,它是程序的入口,因此也常常被称为主函数,在它前面一般都会有个int,那么int又是什么呢,int表示的main函数执行结束的时候返回一个整型类的值,所以在main函数的最后都会写上return 0,关于它我们一定要注意一下几点:
- main是程序的入口,可以出现在程序的任意位置,但是它必须在其他函数的定义之前
- main函数有且只有一个,即使一个项目中有多个.c文件,但也只能有一个main函数,因为程序的入口只能有一个
- main后面的()不能漏掉了!
库函数
为了提高程序员的开发效率,c语言标准规定了一组函数,由不同的编译器厂商根据标准实现,提供给程序员使用,这些函数组成了一个函数库,也被称为标准库,也就是库函数
在这个基础上一些厂商可能会额外扩展提供部分函数,但这些函数不一定被其他编译器支持
使用库函数之前,一定要先使用包含其对应的头文件声明
库函数较多,死记硬背不是方法,可以在以后的运用中慢慢熟悉
关键字
即c语言中一批保留名字的符号,这些符号被称为保留字或者关键字
注意:
- 关键字都有特殊意义,是保留给c语言使用的
- 程序员自己创建的标识符是不能和关键字重复的
- 关键字也不能自己创建
以下是c语言的32个常用关键字:
- auto break case char const continue default do double else enum ex
- float for goto if int long register reyurn short signed sizeof
- struct swich typedef union unsigned void volatile while
注:在C99标准中加入了inline restrict _Bool _Complex _Imaginary等关键字
字符和ASCII编码
只要是键盘上可以敲出来的就叫字符,在c语言中用单引号括起来,单个字符的打印用%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个字符是不可打印字符,无法打印在屏幕上观察
字符串和\0
与上面介绍的字符形成对比,字符串是用双引号括起来的一串字符,如"abcd"就是一个字符串,其打印格式用%s来指定,也可以用printf()函数直接打印,如 printf("hello c"); 。
注意:对于字符串"abcd",虽然我们眼见是四个字符组成,但实际上在末尾还隐藏着一个\0的转义字符,\0是字符串的结束标志,所以我们在使用库函数printf()打印字符串或者用strlen()计算字符串长度时,遇到\0就自动停止了
转义字符
如果你是刚加入c这个大家庭,在上文中看到\0或者\n等你可能会疑惑这是什么东西,别急,介绍这就来了
在字符中有一组特殊的字符,我们称为转义字符,顾名思义,即转变原来意思的字符
比如单一个n,它就是一个单纯的字符,那我们在它前面加上\,它(\n)就代表了换行的意思,我们可以简单的理解为\让n发生了转变,n被\转义为换行的意思
c语言中像这样的转义字符还有一些,如下:
- \':用于表示字符常量'
- \":用于表示一个字符串内部的双引号
- \\:用于表示一个反斜杠
- \a:警报,这会使得终端发出警报声或者出现闪烁,或者两者同时发生
- \b:退格键,光标回退一个字符,但不删除字符
- \f:换页符,光标移到下一页。现代系统已经无法验证,行为改为类似于\v
- \n:换行符
- \r:回车符,光标回到同一行开头
- \t:制表符,光标移到下一个水平制表符,通常是下一个8的倍数或者4的倍数
- \v:垂直分隔符,光标移到下一个垂直制表符,通常是下一行的同一列
- \ddd:ddd表示1-3个八进制数字
- \xdd:dd表示2个十六进制数字
转义字符参考:转义序列 - cppreference.com
注释
首先,顾名思义,注释只是程序员对代码的解释,方便自己和别的程序员更容易梳理代码逻辑,读懂代码,对实际代码没有任何影响,要养成写注释的好习惯,但也不要过度注释,写一些必要的注释就行,注释在很大程度上反映了程序员的素质,好的注释在未来找工作也能给面试官留下一个好的印象
注释有两种形式:
- 将注释放在/*........*/内,内部可分行,这种注释也可以插在行内,但要注意的是从/*开始注释,遇到第一个*/就认为注释结束了
- 将注释放在//后面,只能是单行,可在行首或行尾,这是C99标准新增的语法
注意:不管是哪一种注释,都不能放在双引号里面