1——C语言是什么?
C语言就像人们之间交流的语言(汉语,英语等)一样,只不过C语言是帮助人们跟计算机之间交流的语言,我们称与计算机交流的语言为计算机语言,C语言就是其中一种。
2——C语言的历史
1969年,贝尔实验室里,汤普森和丹尼斯两人一起用汇编语言(计算机语言)开发了Unix系统,为了其可移植性,汤普森创造了B语言。
1972年,丹尼斯和布莱恩在B语言的基础上开发了C语言,取代了B语言。
1973年,丹尼斯用C语言重新书写了Unix系统。此后这种语言广泛被应用。
1989年,美国国家标准协会(ANSI)发布了C语言标准,即C89,标志着C语言的稳定和规范化。
至今,C语言依旧是最流行的计算机语言之一。
3——C语言编译器的选择
3.1-初步了解运行的机制
C语言是编译型语言,其源文件(.c)为后缀的文件,需要经过编译和链接两个步骤,最终生成可执行文件。
3.2-选择VS2022的原因
常见的编译器有msvc,gcc,clang等等。常见的集成开发环境有VS,DevC++,XCode等等。(集成开发环境(简称IDE),即包含了代码编写,分析,编译,调试等功能为一体的开发软件)
VS集成了msvc,功能强大,中文版本,而且目前大部分企业使用的是VS。缺点是安装需要的内存较大。
4——VS项目,头文件,源文件介绍
VS用项目来管理文件,项目名称最好有意义,尽量不要用中文,不要有特殊符号和空格。
项目位置确定好,方便管理。
解决文件里可以包含多个项目,初步可以理解为项目就是解决方案。
源文件是XXX.c
头文件是XXX.h
5——第一个C语言程序
#include<stdio.h>
int main()
{
printf("hello world\n");
return 0;
}
6——main函数
main函数也叫主函数,每个C语言程序都是从main函数进入,main函数相当于每个程序的入口
C语言一般认为返回0表示返回正常,非0表示异常。
main函数有且仅有一个,即使一个项目里有多个.c文件,也只能有一个main函数,因为C语言程序只能有一个入口。
代码式内容必须是英文符号。
7——printf函数和库函数
printf函数作用是将想要输出的内容打印在标准输出设备上面(一般指屏幕),即将双引号中的内容打印出来。%d是占位符,\n是转义字符。
为了不再重复实现一些常用的代码,C语言规定了一些标准函数,这些函数再由不同的编译器商家根据标准去实现,最终提供给程序员去使用。这些函数组成了一个库,叫做标准库,里面的函数也叫库函数。此外,不同的编译器可能会提供库函数之外的函数,其他编译器不一定支持。
C语言只规定语言,没有具体地去实现很多函数。
相同系列的函数一般包含在同一个文件里。
8——关键字介绍
C语言中保留了一些名字的符号,称为关键字或者保留字。
这些符号具有特殊含义,只留给C语言使用。
在自己创建标识符的时候不能和关键字相同。
关键字不能自己创建。
具体关键字介绍可以自己去搜索,不用特意地记忆。
9——字符和ASCII编码
在键盘上敲出来的就是字符,在C语言中用‘ ’括起来表示。
因为计算机内部使用二进制,所以美国国家标准协会也给这些字符进行了编码,称为ASCII编码。
掌握几组特殊的即可,具体可以去搜。
数字0~9:48~57
A~Z:65~90
a~z:97~122
‘0’表示字符0
0表示数字0,即什么都没有
0~31这32个字符无法在屏幕上打印出来
10——字符串和\0
使用双引号括起来的是字符串,字符串末尾隐藏着一个\0表示字符串的结束,\0不计入字符串长度,即字符串长度指\0之前的字符个数。
在打印字符串时,如果找不到字符串后面的\0,会一直打印下去,直到找到\0。
strlen是统计字符串长度的函数,统计\0之前字符的个数。
\0实质上是转义字符。
11——转义字符
转变原来字符含义的字符,我称之为转移字符。
常见的转移字符:
\? :书写连续多个问号时,防止被解析成三字母词
\' :用于表示字符常量‘
\" :用于表示一个字符串内部的“
\\ :防止\被转义
\a :报警
\b :退格,光标往后退一格,但不删除
\f :换页符
\n :换行符
\r :回车符,光标移动到同一行开头
\t :制表符,光标移动到下一个水平制表位,通常是下一个4/8的倍数
\v :垂直分隔符,光标移动到下一个垂直制表位,通常时下一行的同一列
\ddd:ddd表示1~3个8进制的数字
\xdd:表示1~2个16进制的数字
12——语句和语句分类
空语句
表达式语句
函数调用语句
控制语句
复合语句
12.1-空语句
一个分号就是一条语句
需要一条语句,但什么都不用干的时候使用
12.2-表达式语句
在表达式语句后面加上分号就是表达式语句
12.3-函数调用语句
函数调用的时候加上分号
12.4-复合语句
大括号内的所有语句构成,也称为代码块
12.5-控制语句
顺序
选择
循环
转向语句
13——注释
注释是给程序员看的,计算机会忽略它。
养成写注释的习惯,但不要过度编写注释
注释:
//
/**/
注意注释嵌套问题
注释不要放到双引号里面,会被当做字符串
注释在编译时会被当做空格,所以注释的位置不要引起错误
可以
#include<stdio.h>
int main()
{
int a = /**/10;
return 0;
}
不行
#include<stdio.h>
int main()
{
in/**/t a = 10;
return 0;
}