1.C语言是什么?
我们人与人之间的交流叫自然语言,比如我跟英国人交流用英语,我跟日本人交流用日语。那么我们跟电脑交流的语言是什么呢,那就是计算机语言。我们通过计算机语言跟计算机下达指令,让计算机为我们工作;计算机语言有很多,有C语言,java,python,很多,上千种;C语言只是其中一种。那我们为什么学习C语言呢?
因为C语言这么多年来,在计算机语言排名中,总是位列前五名,并且很多语言都是在C语言的基础上,发明扩展出来的。学好C,也是掌握其他计算机语言的关键。
2.C语言的历史
1969年美国贝尔实验室的肯·汤普森与丹尼斯·里奇一起开发了Unix操作系统。Unix是用汇编语言写的,为了移植到其他计算机,汤普森就在BCPL语言的基础上发明了B语言。
1972年丹尼斯·里奇和布莱恩·柯林汉有在B语言的基础上重新设计了一种新语言,这种新语言取代B语言,所以称C语言
1973年整个Unix系统都使用C语言重写此后,这种语言开始快速流传,广泛用于各种操作系统和系统软件开发。
1988年美国国家标准协会(ANSI)正式将C语言标准化,标志着C语言开始稳定和规范化。
至今,一直到今天C语言还是在广泛的使用,在计算机语言的排行榜上霸占前前三名。
3.编译器
C语言是一种编译型语言,C语言原来的代码本身是文本文件,但是文本文件本身并不会执行,要通过编译器的编译和链接器的链接,生成计算机可以看得懂的二进制的可执行文件,可执行文件才会执行。
我们打的代码会放在.后缀的文件中,它们通过编译器产生多个目标文件(.obj后缀的文件),再通过链接器链接处理生成对应的可执行程序(.exe文件)
3.1编译器选择
既然C语言是一种编译型语言,那就需要依赖编译器,那要选择那种编译器呢?
常见的编译器有msvc,clang,gcc,也有一些IDE,如vs2022,DevC++,Xcode、Clion。
IDE(集成开发环境)用于提供程序开发环境的应用程序,就是把编译器,链接器,调试器等工具发在一起,更方便,更利于开发。
比较推荐vs2022,DevC++。
vs2022:主流软件,功能强大,方便,快捷,对新手友好。
DevC++:小巧,方便,简单,一般是竞赛使用。
4.头文件、源文件
我们打开VS创建新项目,选择空项目,然后改一个有意义的名字,放在自己选择的路径底下,完成,再点击右边的解决方案资源管理器,选择源文件,右击,选择新建项,然后点击C++项目,再下面改名并且加上.c后缀,完成。
C语言把.h后缀的文件成为头文件,.c后缀的文件称为源文件。
5.第一个C语言程序
6.main函数
每个C语言程序不管有多少行代码,都是从main函数开始执行,main函数就是程序的入口,main函数,我们也叫做:主函数。main函数前面的int,表示main函数执行结束后返回一个int整型类型的值,与main函数后面的return 0前后呼应。
关于main函数我们有几个要注意的点
main函数是程序的入口
main函数仅有一个
即使再一个项目中,你创建了很多源文件,但是main函数只有一个,因为程序的入口只有一个。
main函数不要写成mian
main函数后面的括号不要漏了
我们的代码不能使用中文符号,比如括号和分号
一条语句后面要有分号
7.printf函数
我们使用printf函数,再电脑屏幕上打印信息
printf是一个库函数,那么它的功能是在标准输入输出设备也就是电脑上打印信息,
printf除了可以打印字符串也可以打印其他类型的值把比如:
那我们再使用printf库函数是需要包含头文件的,可以理解为你要用printf,你需要跟stdio.h头文件打声招呼,把你的printf借用一下。
那什么是库函数?
为了不再重复打那些常见的代码,提高效率,C语言标准规定了一些函数,交给不同的编译器厂商根据标准去实现,那么这些函数很多啊,他们就把很多的函数组合起来,装在库里,那么里面的函数就叫库函数。
你要用某个函数,那么就要写上对应的库函数,头文件。
8.关键字
在C语言中,它自己已经定义的名字的符号(int、if、float)就叫做关键字。
关键字都有特殊的含义。
我们在创建的变量名不能与之重复
常用的关键字:
break、case、char、const、default、do、double、else、enum、extern、int、long、return、short、sizeof、switch、unsigned、if、for、void、while、struct、_Bool
9.字符,ASCII码
我们在键盘敲的a,v,w,@,#等都称为字符,在C语言中,字符我们就用' '单引号括起来,'a'、'%'、'f'。
我们计算机它只会开二进制,怎么让它会看字符呢?我们就把每个字符给它一个对应的编码。后面为了统一编码,美国国家标准协会(ANSI)出一个标准ASCII编码。
这个表,我们不用全记,记一些特殊的,用了你会查就行。
字符A~Z的ASCII码从65~90
字符a~z的ASCII码从97~122
对应的大小写字符的ASCII码值相差32
数字字符0~9的ASCII码值为48~57
换行\n的ASCII码值是10
ASCII码的0~31这32个字符是不可打印字符,不能打印在屏幕上
10.字符串
在C语言,用" "双引号括起来的一串字符就叫字符串。如"absdad"。
注意特殊一点,在字符串的末尾都会隐藏一个\0字符,它是字符串的结束标志。
我们数hello是5个字符,实际上是6个字符,加上\0。我们使用printf函数在打印字符串的时候遇到\0就停止了。
我们把字符放在数组里面,验证一下
arr1打印正常,arr打印错误,不知道打印什么玩意,原因你在arr输入了a,b,c字符并没有加\0字符结束标志。所以它在数组这块空间里面没有\0结束,它就会继续到下一个空间去打印,直到碰到\0,其他空间里面有什么我们是不知道的,打出来的玩意我们也看不明白。当然我们给arr加上\0上可以的。
11.转义字符
顾名思义:转变原来意思的字符
前面我们看到的\n,\s,\0其实就是转义字符。
第一段代码就是普通的字符n,第二段代码在n前面加\,就是一个转义字符,原来字符意思变了,\n表示换行。
在C语言像这样字符有很多,比如:
\‘:打印字符单引号'
\":打印字符双引号"
\\:打印斜杠
\a:你电脑会发出“滴”的一声
\t:相当于Tab制表符,会有4或者8个空格
\n:换行
\0:字符结束标志,ASCII码值为0
\ddd:d d d表示1~3个八进制数。比如:\130,表示字符X
\xdd:d d 表示两个十六进制数。比如:\x5a,a表示10
十六进制数:1 2 3 4 5 6 7 8 9 a b c d e f 、
12.语句
C语言的代码有一条条语句构成的,基本分为5大类:
空语句
表达式语句
函数调用语句
复合语句
控制语句
12.1空语句
一个分号就是一条语句,是空语句。不用干活,但就是要条语句
12.2表达式语句
就是表达式
12.3函数调用语句
有函数调用
Add函数
12.4复合语句
复合语句就是一个代码块;成对括号中的代码就是一个代码块。
12.5控制语句
控制语句用于控制程序执行的流程和实现程序的各种结构方式,C语言主要有三种结构(顺序、选择、循环),基本主要有九种控制语句。
分为三类:
1、分支语句:if,switch
2、循环语句:do...while、while、for
3、转向语句:break、goto、continue、return
13.注释
注释就是对代码进行说明,编译器会忽略注释,对代码没有影响。注释是写给自己看的,写给别人看的,为什么要写注释?
写好注释,能让我们,别人看得懂代码,比如一串稍微复杂代码,你不注释,一天后十天后你能看懂,那么一个月十个月后你还能看的懂吗?你去公司上班检查上一个人留下的代码,什么注释都没写,代码写的也不规范,你还问他这是什么意思,,他说这是我生日,真是麻烦!
所以养成写注释,规范写代码的好习惯是对我们很有帮助的。
13.1.注释形式
13.1.1. /* */
把注释的内容放在/* */内。
注意一定是/* */这种形式,写的时候别漏后面*/
这种注释是不能嵌套注释的
/*注释开始,遇到第一个是*/就结束了
13.1.2. //
要注释的内容放在//后面,注意这种注释只能是单行的。
注意不管哪种注释,都不能放在双引号内,放在双引号内会当初字符串的一部分,并不能起到注释作用。
结语
谢谢观看,这只是对C语言大概的了解,写完这篇博客,我有一个感悟:人啊不要高估自己也不要低估自己,我以为一篇博客大概两个钟写完,没想到花了我一个早上。