目录
1.C语⾔的历史和辉煌
了解更多请点击—>
https://www.tiobe.com/tiobe-index/https://www.tiobe.com/tiobe-index/
2.编译和链接
⼀个⼯程⼀般都会有多个源⽂件组成,如下图所⽰,演⽰了源程序经过编译器和链接器处理的过程。
注: 1. 每个源⽂件(.c)单独经过编译器处理⽣成对应的⽬标⽂件(.obj为后缀的⽂件)
2. 多个⽬标⽂件和库⽂件经过链接器处理⽣成对应的可执⾏程序(.exe⽂件)
计算机语言
a,解释性语言
HTML,XML,Python,Ruby
b,编译性语言
程序在执行之前需要有一个专门的编译过程,编译成机器语言。c,c++
3.第一个C语言程序
4.main函数(主函数)
每个 C 语⾔程序不管有多少⾏代码,都是从 main 函数开始执⾏的。
注:•main 函数是程序的⼊⼝。
•main函数有且仅有⼀个
•即使⼀个项⽬中有多个.c⽂件,但是只能有⼀个main函数(因为程序的⼊⼝只能有⼀个)
main函数多种写法
1.旧式写法:void main ( )
2.旧式写法:void main (void)
3. int main (void) \\void表示main函数不接受任何函数
4.(很少用)int main(int argc,char *argv[])
5.printf和库函数
print \\打印 +f \\格式
\\按格式打印信息
\\printf是一个库函数
eg:printf("%c\n", 'q'); \\%d 等是字符占位符,会被后边的值替换。
占位符
1)%d——整数的打印
2)%c——字符的打印
3)%f ——小数的打印
4)%s——打印字符串
5)%lf——打印double数据
6)%ld——输出长整型
头文件
在使⽤库函数的时候,需要包含对应的头⽂件。
printf 函数需要包含的就是 stdio.h 这个头⽂件。eg:#include <stdio.h>
又例如:#include <string.h> 头文件
strlen 库函数
了解更多请点击—>
cplusplus.com/reference/clibrary/https://cplusplus.com/reference/clibrary/
6.关键字(保留字)
• 程序员⾃⼰在创建标识符的时候是不能和关键字重复的
• 关键字也是不能⾃⼰创建的。
C语⾔的常用的32个关键字如下:
注:在C99标准中加⼊了 inline 、 restrict 、 _Bool 、 _Complex 、 _Imaginary 等关键字。
C语⾔关键字的全部介绍:
C 关键词 - cppreference.comhttps://zh.cppreference.com/w/c/keyword
数据类型
char——字符
short——短整型
int——整型
long——长整型
float——单精度浮点型
double——双精度浮点型
struct——声明结构体变量或函数
union——声明共同体(联合)数据类型
unsigned——声明无符号类型变量或函数
void——声明函数无返回值或无参数,声明无类型指针
enum——声明枚举类型
分支循环
if , switch , for , while , do while , break , continue‘’
7.字符(%c)和ASCII编码
\\字符用单引号引起
计算机中所有的数据都是以⼆进制的形式存储的,那字符在内存中分别以什么样的⼆进制存储的呢?如果我们每个⼈⾃⼰给这些字符中的每个字符编⼀个⼆进制序列,这个叫做编码,为了⽅便⼤家相互通信,不造成混乱,后来美国国家标准学会(ANSI)出台了⼀个标准 ASCII 编码,C 语⾔中的字符就遵循了 ASCII 编码的⽅式。
参考:ASCII 码表 - cppreference.com
注:• 字符A~Z的ASCII码值从65~90
• 字符a~z的ASCII码值从97~122
• 对应的⼤⼩写字符(a和A)的ASCII码值的差值是32(大写+32=小写)
• 数字字符0~9的ASCII码值从48~57
• 换⾏ \n 的ASCII值是:10
• 在这些字符中ASCII码值从0~31 这32个字符是不可打印字符,⽆法打印在屏幕上观察
8.字符串和\0(%s)
\\字符用双引号引起
\\就是在字符串的末尾隐藏放着⼀个 \0 字符,这个 \0 字符是字符串的结束标志。
注
在字符数组的末尾一定要加上\0,要不然会打印出随机值。
9.转义字符
\? :在书写连续多个问号时使⽤,防⽌他们被解析成三字⺟词,在新的编译器上没法验证了。
\\基本不用 \\三字字母:eg:??)——] , ??(——[
\' :⽤于表⽰字符常量' \\为了打印' ' '
\" :⽤于表⽰⼀个字符串内部的双引号
\\ :⽤于表⽰⼀个反斜杠,防⽌它被解释为⼀个转义序列符。
\a :警报,这会使得终端发出警报声或出现闪烁,或者两者同时发⽣。
\b :退格键,光标回退⼀个字符,但不删除字符。
\f :换⻚符,光标移到下⼀⻚。在现代系统上,这已经反映不出来了,⾏为改成类似于 \v 。
\n :换⾏符。
\r :回⻋符,光标移到同⼀⾏的开头。
\t :制表符,光标移到下⼀个⽔平制表位,通常是下⼀个8的倍数。
\v :垂直分隔符,光标移到下⼀个垂直制表位,通常是下⼀⾏的同⼀列。
下⾯2种转义字符可以理解为:字符的8进制或者16进制表⽰形式
\ddd :d d d表⽰1~3个⼋进制的数字。 如: \130 表⽰字符X
\\130这个8进制数字转化为10进制后的数字88作为ASCII码值代表字符
\xdd :d d表⽰2个⼗六进制数字。 如: \x30 表⽰字符0
\0 :null 字符,代表没有内容, \0 就是 \ddd 这类转义字符的⼀种,⽤于字符串的结束标志,其 ASCII码值是0.
转义字符参考:转义序列 - cppreference.com
10.语句和语句分类
语⾔的代码是由⼀条⼀条的语句构成的。
分为五类:
• 空语句 • 表达式语句 • 函数调⽤语句 • 复合语句 • 控制语句
1)空语句
⼀个分号就是⼀条语句,是空语句。
2)表达式语句
在表达式的后边加上分号。
\\eg:b = a + 5;
3)函数调用语句
\\eg:printf("hehe\n");
int ret = Add(2, 3);
4)复合语句
成对括号中的代码就构成⼀个代码块。
5)控制语句(9种)
1. 条件判断语句也叫分⽀语句:if语句、switch语句;
2. 循环执⾏语句:do while语句、while语句、for语句;
3. 转向语句:break语句、goto语句、continue语句、return语句。
11.注释
注释:ctrl+k+c
取消:ctrl+k+u