1. C语言发展史,学习C语言的必要性?
2. 编译和链接是什么?过程是什么?
3. 各个编译器我该使用什么?vs的优势?
4. main函数究竟是啥?
5. 关键字有哪些? 要背诵吗?
6. 字符?asc码?字符计算?
7. C语言的字符串?字符和字符串有何区别?
8. sizeof和strlen?竟然有坑?
9. 转义字符是什么?平时怎么用?
10. C语言是结构化语言,有哪几种结构?控制语句是什么?
C语言的本质:是一种计算机语言
C语言的发展史:
最初作为Unix系统的开发工具而发明的。
1972年,美国⻉尔实验室的D. M. Ritchie 在B语言的基础上设计出了C语言。
1973年,Ken Thompson 和D. M. Ritchie 合作把UNIX的90%以上用C语言改写,即UNIX第5 版。
1988 年,ANSI正式将C语言标准化。
至今,C语言广泛使用,在计算机语言的排行榜霸占前三名。
编译和链接
C语言是门编译型计算机语言,其源代码是文本文件,本身无法执行,必须通过编译器翻译和链接器的连接,生成二进制可执行文件,才可执行。
* 每个源文件(.c)单独通过编译器处理生成对应的目标文件(.obj为后缀的文件)
* 多个目标文件和库文件经过链接器处理生成可执行程序(.exe文件)
编译器的选择
msvc clang gcc 是常见的编译器;
集成开发环境
VS2022:集成了MSVC(安装包大一些,安装简单,无多余配置,使用方便简单)
XCode:集成clang(苹果电脑上的开发环境)
CodeBlocks集成gcc(工具较小众,需配置环境)
DevC++集成gcc(小巧,工具简单,对代码风格的养成不好,一些竞赛使用)
Clion是默认使用CMake,编译器可配置(工具收费)
VS2022
是一个主流的集成开发环境,企业中使用较为普遍。
包含了编译器,编辑器,调试器,功能强大,但安装包大,占用空间多。
main函数(主函数)
* 程序的入口
* 一个程序中有且只有一个
关键字(不用背诵,见到认识就行)
保留名字的符号(int return if )
* 关键字都有特殊的意义,是保留给C语言使用的
* 程序员在自己创建标识符不能与关键字重复
* 关键字自己也不能创造
字符和ASCII码
@ # a % & * m 这些符号都是字符,C语言中字符都使用单引号括起来 'd' '&'
计算机中所有的数据都是以二进制的形式存在,ASCI出台了一个标准ASCLL码,来给这些字符中的每一个字符编一个二进制序列。
字符A~Z:65~90 a~z: 97~122
数字0~9: 48~57 换行 \n :10
0~31这32个字符不可以打印字符,无法在屏幕上观察
字符串
使用双括号括起来的一串字符被称为字符串,其打印格式用 %s
\0是字符串结束的标志
strlen和sizeof的区别
sizeof是一个运算符,strlen是一个函数
sizeof是计算类型,表达式,变量的占用内存字节数 strlen是计算字符串的长度,遇到 \0 就自动停止
转义字符:原本的意思发生变化
\n:换行
\\:防止被解释成转义序列符
\a: 警报或闪烁
\v: 换页符
\ddd : ddd表示1~3个八进制的数字
\xdd : dd表示两个十六进制数字
结构
*顺序结构
*选择结构
*循环结构
控制语句
* 条件语句(分支语句):if 语句,switch 语句
* 循环执行语句:do while语句,while 语句,for 语句
* 转向语句:break语句, goto语句, continue语句 , return语句