本人自2023年高考进入陕西省安康学院大一进行学习,并在大一下学期开始系统完整学习C语言,对于计算机专业来说,打好基础尤为重要,接下来我将在此处记录我所学到的内容。
什么是C语言?
C语言是一种语言,类似于汉语、英语、俄语的一种语言,这些语言是人与人之间交流的语言,同理,C语言就是人与计算机交流的语言。
集成开发环境的选择-----VS 2022
优点:
• VS2022是⼀个主流的集成开发环境,企业中使⽤较为普遍;
• VS2022包含了:编辑器+编译器+调试器,功能强⼤;
• 直接安装即可使⽤,基本不⽤额外配置环境,上⼿容易;
• 默认界⾯是中⽂的,初学者友好。
缺点:
• 功能丰富,安装包⼤,占⽤空间多。
VS2022项⽬的创建运行和源⽂件、头⽂件介绍
创建新项目——空项目(项目命名最好有意义)——创建源文件(名称把.cpp改为.c后添加即可)——接下来就可以写程序
代码运行:
方法一:ctrl+F5/Fn+ctrl+F5(编译+链接+运行)
方法二:调试——开始执行(不调试)
在VS2022上写代码,我们是需要创建项⽬的,直接新建项⽬就可以了在项⽬中就可以添加源⽂件和头⽂件。 C语⾔把 .c 为后缀的⽂件称为源⽂件,把 .h 为后缀的⽂件称为头⽂件。
第一个程序(hello)
在上述程序中看到此代码出现了main函数、printf、函数库等,下面将会详细阐述。
常见错误:
1、包含头文件无#;
2、main打错成mian;
3、代码中括号、分号、逗号、引号、用中文;(在写代码过程中,所用的符号都要英文)
4、在语句结束时忘加分号。
main函数
main函数是C语言必不可少的函数,C语言总是从main函数开始执行,main函数是程序执行的入口,所以main函数也被称其为主函数。一个项目(工程)只能包含一个main函数,因为程序的入口只能有一个。int则表示main函数的返回值类型为一个整型,所以在main函数最后会加上return 0;
printf和库函数
在上面的代码当中,利用了printf函数在屏幕上打印出“Hello"的字样,由此知道printf函数的功能就是打印信息。
printf是一个库函数,功能就是在标准输出设备上对信息进行打印。
那什么是库函数呢?
为了不再重复实现常⻅的代码,让程序员提升开发效率,C语⾔标准规定了⼀组函数,这些函数再由不 同的编译器⼚商根据标准进⾏实现,提供给程序员使⽤。这些函数组成了⼀个函数库,被称为标准 库,这些函数也被称为库函数。在这个基础上⼀些编译器⼚商可能会额外扩展提供部分函数(这些函 数其他编译器不⼀定⽀持)。 ⼀个系列的库函数⼀般会声明在同⼀个头⽂件中,所以库函数的使⽤,要包含对应的头⽂件。
库函数⽐较多,可参考链接:https://cplusplus.com/reference/clibrary/
在使用库函数时,在程序中要包含头文件,如:printf函数在使用的时候要包含stdio.h这个头文件在代码中的包含方法为下图开头的#include<stdio.h>。
当然,printf不止可以打印字符串,还可以打印整型(int)、字符(char)、双精浮点型(float)等数据。
上图中出现的%d %c %lf 等被叫做占位符,会被printf函数中引号后面的变量所替换。
关键词
在C语言中有一部分字符是有着特殊意义的,如:int、if、float、return、char等,这些字符被称为保留字或关键词。
1、关键词都有着特殊的意义,是保留给C语言使用的;
2、在写代码时自己创建的标识符不能与关键词相同(如不能定义"int char",char不能作为int的整型变量);
3、关键词也不能自己创建。
C语言常见的32个关键词如下 :(全:C 关键词 - cppreference.com)
字符和ASCII编码
字符:
在键盘上能敲出的各种字符,如:@、#、¥、%等都被称为字符,在C语言编程中,用单引号括起来的表示字符,如:'a' 、'A'等,我们知道在计算机中所有的数据都是以⼆进制的形式存储的,那这些字符在内存中分别以什么样的⼆ 进制存储的呢?如果我们每个⼈⾃⼰给这些字符中的每个字符编⼀个⼆进制序列,这个叫做编码,为 了⽅便⼤家相互通信,不造成混乱,后来美国国家标准学会(ANSI)出台了⼀个标准ASCII编码,C 语⾔中的字符就遵循了ASCII编码的⽅式。
ASCII表(https://zh.cppreference.com/w/cpp/language/asci)
此表不用记住所有的数字,使用时再查即可。
• 字符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
再C语言中表示字符串用双引号括起来的一串字符,如:"Hello",就是一个字符串,要在程序中输出字符串用%s格式输出。
printf函数在识别到\0后就会自动停止,所以"Hello"中看到的只有5个字符,但实际上再o的后面海隐藏着一个转义字符 \0 ,\0就是字符串结束的标志。
由上可见第三个printf函数中在l的后面识别到\0转义字符之后便结束了打印。
转义字符
前⾯的代码中出现 \n , \0等字符 。其实在字符中有⼀组特殊的字符是转义字符,转义字符顾名思义:转变原来的意思的字符。
如:\n就表示回车换行,\0表示结束而不加\单独的你、0则没有此功能。而如果只是单纯的想要打印\n,可以在前面加上一个\就可以转义。
C语⾔中像这样的转义字符还有⼀些,具体如下:
• \? :在书写连续多个问号时使⽤,防⽌他们被解析成三字⺟词,在新的编译器上没法验证了。
• \' :⽤于表⽰字符常量'
• \" :⽤于表⽰⼀个字符串内部的双引号
• \\ :⽤于表⽰⼀个反斜杠,防⽌它被解释为⼀个转义序列符。
• \a :警报,这会使得终端发出警报声或出现闪烁,或者两者同时发⽣。
• \b :退格键,光标回退⼀个字符,但不删除字符。
• \f :换⻚符,光标移到下⼀⻚。在现代系统上,这已经反映不出来了,⾏为改成类似于 \v 。
• \n :换⾏符。
• \r :回⻋符,光标移到同⼀⾏的开头。
• \t :制表符,光标移到下⼀个⽔平制表位,通常是下⼀个4/8的倍数。
• \v :垂直分隔符,光标移到下⼀个垂直制表位,通常是下⼀⾏的同⼀列。
下⾯2种转义字符可以理解为:字符的8进制或者16进制表⽰形式
• \ddd :d d d表⽰1~3个⼋进制的数字。如:\130表⽰字符X
\xdd :d d表⽰2个⼗六进制数字。如: \x30表⽰字符0
\0 :null字符,代表没有内容, \0 就是 \ddd 这类转义字符的⼀种,⽤于字符串的结束标志,其 ASCII码值是0.
语句和语句的分类
C语言的代码是由一句一句的语句构成,一个分号就是一条语句。
C语⾔中的语句可为以下五类:
• 空语句
• 表达式语句
• 函数调⽤语句
• 复合语句
• 控制语句
空语句
空语句是最简单的语句,就是在程序中在某处需要一条语句,但是此处不用做任何操作,可以加上一条空语句解决。空语句就是一个分号前上一个分号后啥也没有既为空语句。
表达式语句
表达式语句就是在表达式后面加上分号。
如:
函数调用语句
调用函数库里的函数,在函数名后加上分号既为函数调用语句。如常用的printf函数。
复合语句
一对花括号里的的语句构成的代码块就是复合语句。
控制语句
控制语句⽤于控制程序的执⾏流程,以实现程序的各种结构⽅式
C语⾔⽀持三种结构:顺序结构、选择结构、循环结构。
C语言叫做结构化的程序设计语言,C语言有九种控制语句,可以分为三类:
1、条件判断语句也叫分支语句:if语句、switch语句;
2、循环执行语句:do while语句、for语句、while语句;
3、转向语句:break语句、goto语句、continue语句、return语句。
注释
1、什么是注释?
注释是对所写代码的一种解释说明,编译器不会识别注释,所以注释对代码不会有影响。
2、注释是干什么的?
注释是帮助理解此处代码的标注,以便自己或其他人能够读懂代码。
写注释是一个可以体现一个程序员的素养,能让其他人留下一个好印象,也能方便自己以后迅速理解自己写的代码。
注释的两种形式
1、/* ABCDE */形式
在编译器中不会识别代码中/* */内部的信息,此方式可以多行注释,但是不能嵌套注释
2、//ABCDE 形式
此方式只能单行注释,注释内容为双斜杠后面的内容,可以放在开头、结尾、语句中是 C99标准新增的方式。
两种注释都不能放在双引号里,要不然会被识别为普通字符,失去注释作用。
在编译器编译时会把注释替换为一个空格,所以 min/* ABCDE(这⾥是注释)*/Value 会变成 min Value ,⽽不是 minValue 。
//第一次写博客有很多不足,今后会更加用心完善。