一.入门知识
1.1.1 初识C语言
#include <stdio.h>//预处理.
//主函数,程序入口
int main() {
//输出函数
printf("Hello World!");
//程序正常退出
return 0;
}
- 在书写C语言程序时,#include <stdio.h>是开始。
- main有且只有一个
- return 0;是结束。
1.1.2 注释
- 单行注释 //单行注释 用在:解释一句语句时使用。
- 多行注释 /单行注释/ 用在:代码块解释,如函数等。
1.1.3 关键字
这些关键字不能作为常量名、变量名或其他标识符名称.
注:编辑器通常有关键字的字体颜色识别。
| 关键字 | 说明 |
|---|---|
| auto | 声明自动变量 |
| break | 跳出当前循环 |
| case | 开关语句分支 |
| char | 声明字符型变量或函数返回值类型 |
| const | 定义常量,如果一个变量被 const 修饰,那么它的值就不能再被改变 |
| continue | 结束当前循环,开始下一轮循环 |
| default | 开关语句中的"其它"分支 |
| do | 循环语句的循环体 |
| double | 声明双精度浮点型变量或函数返回值类型 |
| else | 条件语句否定分支(与 if 连用) |
| enum | 声明枚举类型 |
| extern | 声明变量或函数是在其它文件或本文件的其他位置定义 |
| float | 声明浮点型变量或函数返回值类型 |
| for | 一种循环语句 |
| goto | 无条件跳转语句 |
| if | 条件语句 |
| int | 声明整型变量或函数 |
| long | 声明长整型变量或函数返回值类型 |
| register | 声明寄存器变量 |
| return | 子程序返回语句(可以带参数,也可不带参数) |
| short | 声明短整型变量或函数 |
| signed | 声明有符号类型变量或函数 |
| sizeof | 计算数据类型或变量长度(即所占字节数) |
| static | 声明静态变量 |
| struct | 声明结构体类型 |
| switch | 用于开关语句 |
| typedef | 用以给数据类型取别名 |
| unsigned | 声明无符号类型变量或函数 |
| union | 声明共用体类型 |
| void | 声明函数无返回值或无参数,声明无类型指针 |
| volatile | 说明变量在程序执行中可被隐含地改变 |
| while | 循环语句的循环条件 |
printf(参数1,参数2); 参数1:输出的最终形式,以字符串形式体现 参数2:填补内容
| 占位符 | 含义 |
|---|---|
| %d | 以十进制形式输出整数 |
| %u | 以十进制形式输出无符号整数 |
| %x | 以十六进制形式输出整数(小写字母) |
| %X | 以十六进制形式输出整数(大写字母) |
| %o | 以八进制形式输出整数 |
| %f | 以浮点数形式输出实数 |
| %e | 以指数形式输出实数 |
| %g | 自动选择 %f 或 %e 输出实数 |
| %c | 输出单个字符 |
| %s | 输出字符串 |
| %p | 输出指针的地址 |
| %n | 输出已经输出的字符数 |
| %% | 输出百分号本身 |
1.1.4 常量
-
常量是固定值,在程序执行期间不会改变。这些固定的值,又叫做字面量。
-
常量可以是任何的基本数据类型,比如整数常量、浮点常量、字符常量,或字符串字面值,也有枚举常量。
-
常量就像是常规的变量,只不过常量的值在定义后不能进行修改。
-
常量可以直接在代码中使用,也可以通过定义常量来使用。
5)有两种简单的定义常量的方式:使用情况const>define
- 使用 #define 预处理器: #define 可以在程序中定义一个常量,它在编译时会被替换为其对应的值。
define 数据类型 常量名 = 常量值;
//简单的文本替换
2.使用 const 关键字:const 关键字用于声明一个只读变量,即该变量的值不能在程序运行时修改。
const 数据类型 常量名 = 常量值;
//const具有类型检查和作用域的优势
| 转义序列 | 含义 |
|---|---|
| \ | \ 字符 |
| ' | ' 字符 |
| " | " 字符 |
| ? | ? 字符 |
| \a | 警报铃声 |
| \b | 退格键 |
| \f | 换页符 |
| \n | 换行符 |
| \r | 回车 |
| \t | 水平制表符 |
| \v | 垂直制表符 |
| \ooo | 一到三位的八进制数 |
| \xhh . . . | 一个或多个数字的十六进制数 |
printf("Hello, World!\n");
printf("输出单引号:\'\n"); // 输出单引号
printf("输出双引号:\"\n"); // 输出双引号
printf("输出换行符:\n"); // 输出换行符
printf("输出反斜杠:\\"); // 输出反斜杠
1.1.5 变量
- 变量的名称可以由字母、数字和下划线字符组成。它必须以字母或下划线开头。大写字母和小写字母是不同的,因为 C 是大小写敏感的。
数据类型 变量名 = 值
c#才有var(任意类型)
1.1.6 数据类型
| 型 | 存储大小 | 值范围 | |
|---|---|---|---|
| char | 1 字节 | -128 到 127 或 0 到 255 | |
| signed char | 1 字节 | -128 到 127 | |
| int | 2 或 4 字节 | -32,768 到 32,767 或 -2,147,483,648 到 2,147,483,647 | |
| short | 2 字节 | -32,768 到 32,767 | |
| long | 4 字节 | -2,147,483,648 到 2,147,483,647 | |
| unsigned long | 4 字节 | 0 到 4,294,967,295 | |
| 类型 | 存储大小 | 值范围 | 精度 |
| ----------- | ----- | --------------------- | ------- |
| float | 4 字节 | 1.2E-38 到 3.4E+38 | 6 位有效位 |
| double | 8 字节 | 2.3E-308 到 1.7E+308 | 15 位有效位 |
| long double | 16 字节 | 3.4E-4932 到 1.1E+4932 | 19 位有效位 |
类型转换
隐式类型转换: 通常是小转大
隐式类型转换也可能会导致数据精度丢失或数据截断。显式类型转换: 类型进行强制转换 也可能会导致数据精度丢失或数据截断。 ``
//**隐式类型转换**
int a = 1;
float b = 3.14;
double c = a + b; // 隐式将int类型转换为double类型
//**隐式类型转换**
float = 1.1f;
int i = (int)j;