C语言基础知识¶
约 1831 个字 104 行代码 1 张图片 预计阅读时间 7 分钟
C语言介绍¶
C语言是一门编译型语言,C语言源代码都是文本文件,但文本文件本身不能运行,必须通过编译器翻译和链接器的链接,生成二进制的可执行文件才可以执行
在Windows平台下,C语言代码放在后缀为.c文本文件中,通过编译器编译生成后缀为.obj的目标文件,再通过链接器链接目标文件和链接库链接生成后缀为.exe可执行的二进制文件
在C语言中,把后缀为.h的文件称为头文件
C语言基础代码分析¶
C语言代码实例:
| C | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 | |
main函数¶
main函数形式:
| C | |
|---|---|
1 2 3 4 | |
每个C语言程序不管有多少行代码,都是从 main 函数开始执行的, main 函数是程序的入口main 函数也被叫做:主函数。 main 前面的 int 表示main 函数执行结束的时候返回⼀个整型类型的值。所以在 main 函数的最后写return 0; 正好前后呼应
main函数是程序的入口main函数有且仅有⼀个- 即使⼀个项目中有多个
.c文件,但是只能有一个main函数(因为程序的入口只能有一个)
另外,除了上面main函数的写法外,还有下面两种常见的写法:
| C | |
|---|---|
1 2 3 4 | |
| C | |
|---|---|
1 2 3 4 | |
对于写法1,见Linux命令行参数与环境变量
对于写法2,当在函数定义或声明中的参数列表指定为void时,它明确表示该函数不接受任何参数。这是一种明确定义的方式,告诉编译器和程序员这个函数是无参的。在ANSI C(C89/C90)之前的版本中,没有写void表示函数可以接受任意数量和类型的参数,在ANSI C(C89/C90)和更新的标准之后,与空括号被解释为函数没有参数的作用是相同的,但是为了保持向后兼容性,也允许没有参数时写void的形式存在。尽管最新的标准已经摒弃了无参需要写void的方式,但是在现代编程实践中,一般推荐显式地使用void来声明无参函数,以提高代码的可读性和避免潜在的混淆。所以如果一个函数没有参数,可以写void,也可以不写
库函数简介¶
| C | |
|---|---|
1 | |
在上面的实例代码中,使用了printf();打印输出函数,使用库函数中函数需要包含特定的头文件,而printf();定义在头文件stdio.h,将该函数中需要打印的内容打印在控制台中,C语言相关函数头文件可在网站中查询:C语言头文件查询
C语言关键字介绍¶
| C | |
|---|---|
1 2 3 4 5 6 7 8 | |
- C语言中关键字都有特殊的意义,程序员在创建标识符时不可单独使用和关键字重名的名称,并且关键字不可自己创建
C语言关键字介绍网站:C语言关键字
字符与ASCII编码¶
在C语言中,将各种单独的符号成为字符,而这些字符在表示时需要用单引号'',例如:'a','b'等
由于计算机中的数据都是以二进制的形式存储,而字符在计算机中以二进制序列存储,这个过程叫做编码,而C语言遵循ASCII编码
注:在新的ASCII表共有256个字符
ASCII表查询:ASCII编码表
在ASCII中需要记忆的特殊位置的内容
- 数字0-9对应ASCII编码位置为:48-57
- 大写字母A-Z对应ASCII编码位置为:65-90
- 小写字符a-z对应ASCII编码位置为:97-122,其中小写字母与对应大写字母对应的ASCII编码值相差32
- 打印中不可见的字符对应ASCII编码位置为:0-32
ASCII字符打印代码实例:
| C | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | |
转义字符¶
C语言中的转义字符:
\?:在书写连续多个问号时使⽤,防⽌他们被解析成三字母词,在新的编译器上没法验证了。\':用于表示字符常量'\":用于表示⼀个字符串内部的双引号\\:用于表示⼀个反斜杠,防止它被解释为⼀个转义序列符。\a:警报,这会使得终端发出警报声或出现闪烁,或者两者同时发⽣。\b:退格键,光标回退⼀个字符,但不删除字符。\f:换页符,光标移到下一页。在现代系统上,这已经反映不出来了,行为改成类似于\v。\n:换行符。\r:回车符,光标移到同⼀行的开头。\t:制表符,光标移到下⼀个水平制表位,通常是下⼀个8的倍数。\v:垂直分隔符,光标移到下⼀个垂直制表位,通常是下⼀行的同⼀列。
C语言中的特殊转义字符:
\ddd:ddd中的每一个d表示1~3个八进制(0-7)的数字。如:\130表示字符X\xdd:dd中的每一个d表示2个十六进制(0-F)数字(x为固定内容代表十六进制)。如:\x30表示字符0\0:null字符,代表没有内容,\0就是\ddd这类转义字符的⼀种,用于字符串的结束标志,其ASCII码值是0
Note
其中注意转义字符\b,具体效果见博客:转义字符\b解析博客
C语言中的转义字符参考:转义字符参考网址
C语言语句分类¶
空语句¶
只有一个分号的语句即为空语句
| C | |
|---|---|
1 2 3 4 5 6 7 | |
表达式语句¶
表达式后面加上;即为表达式语句
| C | |
|---|---|
1 2 3 4 5 6 7 8 9 | |
函数调用语句¶
函数调用时需要加上分号,称为函数调用语句
| C | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
复合语句¶
在C语言中成对的花括号{}中的语句构成一个代码块,亦称为复合语句
| C | |
|---|---|
1 2 3 4 5 6 7 8 9 10 | |
控制语句¶
在C语言中用于控制程序的执行流程的语句成为控制语句,从而实现不同的结构方式
条件判断语句(分支语句)¶
if语句、switch语句
循环执行语句¶
do while语句、while语句、for语句
跳转语句¶
break语句、goto语句、continue语句、return语句
C语言中注释¶
注释:对代码的说明,编译器会忽略注释
块注释/**/的形式¶
将注释放在/**/中,从第一个/*开始到后面的*/结束
| C | |
|---|---|
1 2 3 4 5 | |
块注释可以插在行内
| C | |
|---|---|
1 2 | |
Note
块注释不支持嵌套注释, /* 开始注释后,遇到后面的第⼀个 */ 就认为注释结束了
行注释//的形式¶
将注释放在双斜杠 // 后面,从双斜杠到行尾都属于注释
行注释只能是单行,可以放在行首,也可以放在一行语句的结尾
| C | |
|---|---|
1 | |
Note
不管是哪⼀种注释,都不能放在双引号里面。双引号里面的注释符号,会成为字符串的⼀部分,解释为普通符号,失去注释作用
Note
编译时,注释会被替换成⼀个空格,所以min/* 这里是注释*/Value 会变成 min Value(min和Value中间有空格) ,而不是 minValue(min和Value中无空格)
