第一讲:C语言的常见概念
1.C语言是什么?
C语言由贝尔实验室的丹尼斯·里奇(Dennis Ritchie)在1972年设计开发,最初用于重写UNIX操作系统。它继承了B语言的简洁性,同时引入数据类型、结构化编程等核心概念,既能直接操作硬件(如内存地址访问),又具备跨平台移植能力,从而成为系统编程的基石。其高效性和底层控制特性使其广泛应用于操作系统(如Linux)、嵌入式开发、编译器设计等领域,并深刻影响了C++、Java等现代编程语言,被誉为“计算机界的通用语”。通俗的来讲,C语言就是人和计算机交流的语言,人们可以使用C语言给计算机下达指令,让计算机工作。
2.C语言的历史与辉煌
(1)1969年发明B语言
(2)1973年发明C语言
(3)1973年Unix系统使用C语言重写
(4)1988年C语言标准化
至今,C语言还是一直在广泛使用,在计算机语言的排行榜上霸占前三名
3.编译器的选择
C语言是编译型计算机语言,它的源代码都是文本文件,本身无法执行,所以必须通过编译器编译和链接器链接之后才能生成可执行的二进制文件进行执行
C语言的编译器常用的有以下几种:
(1)VS2022 集成了MSVC(安装包较⼤⼀些,安装简单,⽆需多余配置,使⽤起来⾮常⽅便)
(2)XCode 集成了clang(苹果电脑上的开发⼯具)
(3)CodeBlocks 集成了gcc(这个⼯具⽐较⼩众,需要配置环境,不太推荐)
(4)DevC++ 集成了gcc(⼩巧,但是⼯具过于简单,对于代码⻛格的养成不好,⼀些竞赛使⽤)
(5)Clion 是默认使⽤CMake,编译器是可以配置的(⼯具是收费,所以暂时不推荐⼤家使⽤)
我在这里还是比较推荐新手使用VS2022比较简单,更容易上手
4. VS项目和源文件、头文件介绍
使用VS写代码需要创建项目,直接新建项目就可以了,然后就可以在项目中添加源文件和头文件
C语⾔中把 .c 为后缀的⽂件称为源⽂件,把 .h 为后缀的⽂件称为头⽂件。
5.第一个C语言程序
#include<stdio.h>
int main()
{
printf("hello C\n");
return 0;
}
上面源代码,下面是该代码的运行结果
需要运行时在VS2022上使用快捷键:Ctrl+F5即可
6.main函数、
每个C语⾔程序不管有多少⾏代码,都是从 main 函数开始执⾏的, main 函数是程序的⼊⼝, main 函数也被叫做:主函数。 main 前⾯的 int 表⽰ main 函数执⾏结束的时候返回⼀个整型类 型的值。所以在 main 函数的最后写 return 0; 正好前后呼应。
注意
1.main函数是程序的⼊口
2.main函数有且仅有⼀个
3.即使⼀个项⽬中有多个.c⽂件,也只能有⼀个main函数(因为程序的⼊⼝只能有⼀个)
第一次写代码,一些常见的错误总结:
1.main被写成了mian
2.main后边的()漏掉了
3.代码中不能使⽤中⽂符号,⽐如括号和分号
4.⼀条语句结束后,有分号
7.printf和库函数
printfh函数的作用是实现在屏幕上信息的打印
例如上面的:
printf("hello C\n");
库函数是预先封装好的、可直接调用的代码模块,为开发者提供常用功能(如数学运算、文件操作等),通过复用这些现成代码能够大幅提升开发效率,减少重复劳动。printfh函数就是一个库函数。
8.关键字介绍
C语⾔中有⼀批保留的名字的符号,⽐如:int 、 if 、return 这些符号被称为保留字或者关键字。下面是有关关键字的注意事项:
1.关键字都有特殊的意义,是保留给C语⾔使⽤的。
2.程序员⾃⼰在创建标识符的时候是不能和关键字重复的。
3.关键字也是不能⾃⼰创建的。
C语⾔的32个关键字如下:
9.字符和ASCII编码
在键盘上可以敲出各种字符,如:a,q,@,#等,这些符号都被称为字符,C语⾔中字符是⽤单引号 括起来的,如:'a','b','@'。
计算机上的所有数据都是以二进制的形式存在的,这些符号也不例外,可以使用一个二进制数序列来表示,我们把这种二进制数序列叫做编码。ASCII编码就是专门为这些字符制定的一个编码标准。而C语言中的字符就遵循ASCII编码标准。
这些编码我们可以不用全记但可以记一部分比较特殊的数据:
1.字符 A~Z 的ASCII码值从65~90,字符 a~z 的ASCII码值从97~122
2.对应的⼤⼩写字符(a和A)的ASCII码值的差值是32
3.数字字符0~9的ASCII码值从48~57
4.换⾏ \n 的ASCII值是:10
5.在这些字符中ASCII码值从0~31这32个字符是不可打印字符,⽆法打印在屏幕上观察
10.字符串和\0
C语⾔中如何表⽰字符串呢?使⽤双引号括起来的⼀串字符就被称为字符串,如:"abcdef",就是⼀个 字符串。
C语言中\0 是字符串的结束标志。所以我们在使⽤库函数 printf() 打印字符串或者 strlen() 计算字符串⻓度的时候,遇到\0 的时候就⾃动停⽌了。
11.转义字符
转义字符顾名思义:转变原来的意思的字符。“ \0 ”,“ \n ”都是转义字符,例如\n 是⼀个转义字符表⽰换⾏的意思,我们可以简单的理解为 \ 让 n 的意思 发⽣了转变, n 本来是⼀个普通的字符,被 \ 转义为换⾏的意思。
C语⾔中像这样的转义字符还有以下这些:
\?: 在书写连续多个问号时使⽤,防⽌他们被解析成三字⺟词
\': ⽤于表⽰字符常量'
\": ⽤于表⽰⼀个字符串内部的双引号
\\: ⽤于表⽰⼀个反斜杠,防⽌它被解释为⼀个转义序列符
\a:警报,这会使得终端发出警报声或出现闪烁,或者两者同时发⽣
\b:退格键,光标回退⼀个字符,但不删除字符
\f: 换⻚符,光标移到下⼀⻚。在现代系统上,这已经反映不出来了,⾏为改成类似于 \v
\n:换⾏符
\r: 回⻋符,光标移到同⼀⾏的开头
\t: 制表符,光标移到下⼀个⽔平制表位,通常是下⼀个4/8的倍数
\v:垂直分隔符,光标移到下⼀个垂直制表位,通常是下⼀⾏的同⼀列
下⾯2种转义字符可以理解为:字符的8进制或者16进制表⽰形式
1. \ddd :d d d表⽰1~3个⼋进制的数字。如: \130 表⽰字符X
2. \xdd :d d表⽰2个⼗六进制数字。如: \x30 表⽰字符0
\0 :null 字符,代表没有内容, \0 就是 \ddd 这类转义字符的⼀种,⽤于字符串的结束标志,其 ASCII码值是0.
12.语句和语句分类
C语⾔的代码是由⼀条⼀条的语句构成的,C语⾔中的语句可为以下五类:
1)空语句
⼀个分号就是⼀条语句,是空语句。(只用分号,不使用函数库)
2)表达式语句
表达式语句就是在表达式的后边加上分号。
3)函数调用语句
函数调⽤时加上分号,就是函数调⽤语句。
4)复合语句
复合语句其实就是代码块,成对括号中的代码就构成⼀个代码块。
5)控制语句
⽤于控制程序的执⾏流程,以实现程序的各种结构⽅式,分为以下三类(共9种):
1. 条件判断语句也叫分⽀语句:if语句、switch语句
2. 循环执⾏语句:do while语句、while语句、for语句
3. 转向语句:break语句、goto语句、continue语句、return语句
13. 注释是什么?为什么写注释?
注释是对代码的说明,编译器会忽略注释,也就是说,注释对实际代码没有影响。 注释是给程序员⾃⼰,或者其他程序员看的。
C语⾔的注释有两种表⽰⽅法:
1. /**/ 的形式:/* 需要注释的内容*/ (可多行使用)
2. // 的形式://需要注释的内容 (单行注释)