1.C语言是什么?
C语言是一种计算机语言。⼈们通过计算机语⾔写的程序,给计算机下达指令,让计算机⼯作。
2.C语言的历史
3.编译器的选择
3.1编译和链接
C语言源代码都是文本文件,本身无法直接执行,必须通过编译器的翻译和链接器的链接,生成二进制的可执行文件才能执行。
.c:源文件
.h:头文件
.exe:可执行文件
.c++:c++
⼀个⼯程⼀般都会有多个源⽂件组成。
- 每个源文件(.c)单独经过编译器处理生成对应的目标文件(.obj为后缀的文件)
- 多个目标文件和库文件经过链接器处理生成对应的可执行程序(.exe文件)
3.2编译器的选择
C语⾔是⼀⻔编译型的计算机语⾔,需要依赖编译器将计算机语⾔转换成机器能够执⾏的机器指令。
- VS2022:集成MSVC(安装方便简单,缺点就是安装包大,一不小心就几十G)
- Clion:默认使用CMake(也可以配置别的,缺点是软件收费,不过学生可以通过教育认证来使用,或者在网上找一些其他的方法,这里就不细说了)
- XCode:集成clang(mac上的开发工具,缺点就很明显了,不适用于Windows系统)
- CodeBlocks:集成gcc(小众工具,并且需要配置环境,相对麻烦)
- DevC++:集成gcc(工具过于简单,对代码风格养成不好,一些竞赛使用)
我平常使用Clion多一点,也会用到VS2022,喜欢用Clion纯属是喜欢这类编译器的UI风格。
4.main函数
也称:主函数。程序的入口,一个项目中有且仅有一个,后边的括号不能漏。
int main()
{
return 0;
}
5.printf和库函数
实现了在屏幕上打印输出信息。printf
是一个库函数,只要把要打印的字符串放到双引号中并传递给printf函数就可以实现打印。
printf("hello world");
也可以打印其他类型的数据
int num = 10;
printf("%d\n",num); //10 整形
printf("%c\n",'q'); //q 字符
printf("%f\n",3.14); //3.14 双精度浮点型
使用库函数的时候,包含头文件。print
f函数需要的是stdio.h
。
#include <stdio.h>
库函数
C语⾔标准规定了⼀组函数,这些函数再由不 同的编译器⼚商根据标准进⾏实现,提供给程序员使⽤。这些函数组成了⼀个函数库,被称为标准 库,这些函数也被称为库函数
6.关键字
- 关键字都有特殊意义,是保留给C语言使用的
- 程序员自己在创建标识符的时候是不能和关键字重复的
- 关键字又是不能自己创建的
auto break case char const continue default do double else enum ex float for goto if int long
register return short signed sizeof struct switch typedef union unsigned void volatile while
在C99标准中加入了inline、restrict、__Bool、__Comploex、_Imaginary等关键字
7.字符和ASCALL码
- 字符A-Z的ASCLL码值从65-90
- 字符a-z的ASCLL码值从97-122
- 对应的大小写字符(a和A)的ASCLL码值的差值是32
- 数字字符0-9的ASCLL码值从48-57
- 换行\n的ASCLL值是:10
- 在这些字符中ASCLL码值是从0~31这32个字符是不可打印字符,无法打印在屏幕上观察
单个字符的打印可以使用%c来指定格式
printf("%c\n",'70') //F 在这70是ASCALL码值
8.字符串和\0
使用双引号括起来的一串字符就被称为字符串。“abc”,“1234”
字符串打印要用%s来做占位符。
printf("%s\n","hello world!") //hello world!
字符串尾部有一个我们看不见的\0字符,\0是字符串的结束标志
9.转义字符
- \‘:用来表示字符常量’
- ":用来表示字符串内部的双引号
- \\:用于表示一个反斜杠,防止被解释为转义序列符
- \a:警报,蜂鸣声
- \b:退格键,光标会退一个字符,但不删除字符
- \f:换页符,光标移到下一页。类似\v
- \n:换行符
- \r:回车符,光标移到同一行的开头
- \t:制表符,光标移到下一个水平制表位,通常是下一个8的倍数
- \v:垂直分隔符,光标移到下一个垂直制表位,通常下一行的同一列
- \ddd:ddd表示1~3个八进制的数字
- \xdd:dd表示2个十六进制数字
- \0:null字符,代表没有内容,\0是\ddd这类转义字符的一种,用于字符串的结束标志,ASCll码值为0
10.语句和语句分类
- 空语句
- 表达式语句
- 函数调用语句
- 复合语句
- 控制语句
10.1空语句
空语句是最简单的,一个分号就是一条语句,是空语句。
; //空语句
10.2表达式语句
表达式语句就是在表达式的后边加上分号。
b = a + 5; //表达式语句
10.3函数调用语句
函数调用的时候,也会加上分号,就是函数调用语句。
printf("hehe\n") //函数调用语句
int ret = Add(2,3); //函数调用语句
10.4复合语句
复合语句其实就是前面讲过的代码块,成对括号中的代码就构成一个代码块,也被称为复合语句
for (int num = 1; num <= 100; num++) //for循环的循环体的大括号中的就是复合语句
{
if (num % 3 == 0) {
printf("%d\t", num);
}
}
10.5控制语句
用于控制程序的执行流程,以实现程序的各种结构方式(顺序结构、选择结构、循环结构),C语言有九种控制语句。
1.条件判断语句也叫分支语句:if语句、switch语句;
2.循环执行语句:do while语句、while语句、for语句;
3.转向语句:break语句、goto语句、continue语句、return语句。
11.注释
两种注释形式://、/**/
//注释注释注释
/*
注释注释注释
注释注释
注释
*/
学习过程中的代码我放到Gitee和Github中,欢迎大家监督,如有不对的地方欢迎大家批评指正。
Gitee: https://gitee.com/yryld
Github: https://github.com/hub-art