环境名 | 环境版本 |
---|---|
操作系统 | Windows 10 Professional 21H2 |
IDE | Microsoft Visual Studio Professional 2017 |
说明: 这是我复习C语言做的笔记, 所以有些是直接省略的!!!
一. 进制
使用Ctrl+左键点击查看百度词条
Tips: 只需记住二进制转十进制、十六进制即可,其余了解便足以。
二. 逻辑运算
1. 运算符
使用Ctrl+左键点击查看百度词条
Tips:大概了解便可,后面会经常用到。
2. C编译过程
三. 第一个C程序
使用Ctrl+左键打开工程文件
转义字符 | 解释 |
---|---|
\n | 换行 |
\r | 回车 |
\b | 退格 |
\f | 换页 |
\t | 制表符 |
\v | 垂直制作表 |
\a | 鸣响 |
? | 插入问号 |
\" | 插入" |
\’ | 插入’ |
\\ | 插入\ |
四. 数据类型与变量
使用Ctrl+左键打开工程文件
1. 数据类型
- 基本类型
- 整型 —— 有正负之分, 即所谓的无符号、有符号
- (无符号)短整型 —— [unsigned] short
- (无符号)常规整型 —— [unsigned] int
- (无符号)长整型 —— [unsigned] long int
- … …
- 字符型 —— char
- 浮点型
- 单精度浮点型 —— float
- 双精度浮点型 —— double
- 枚举类型 —— enum[此为关键字]
- 整型 —— 有正负之分, 即所谓的无符号、有符号
- 构造类型
- 数组类型 —— 标识符: []
- 结构体类型 —— 标识符: struct
- 共用体类型 —— 标识符: union
- 指针类型
- 空类型
2. 数据类型的宽度(大小)
2.1 有符号整数类型
类型名称 | 类型名称 | 取值范围 |
---|---|---|
signed char | 1 | -2^7(-128) ~ 2^7-1(127) |
short int 或 short | 2 | -2^15(-32 768) ~ 2^15-1(32 767) |
int | 4 | -2^31(-2 147 483 648) ~ 2^31-1(2 147 483 647) |
long int 或 long | 4 | -2^31(-2 147 483 648) ~ 2^31-1(2 147 483 647) |
long long int 或 long long | 8 | -2^63(-9.2233720368548e+18) ~ 2^63-1(9.2233720368548e+18) |
2.2 无符号整数类型
类型名称 | 类型名称 | 取值范围 |
---|---|---|
unsigned char | 1 | 0 ~ 2^8-1(255) |
unsigned short int 或 unsigned short | 2 | 0 ~ 2^16-1(65 535) |
unsigned int | 4 | 0 ~ 2^32-1(4 294 967 295) |
unsigned long int 或 unsigned long | 4 | 0 ~ 2^32-1(4 294 967 295) |
unsigned long long int 或 unsigned long long | 8 | 0 ~ 2^64-1(1.844674407371e+19) |
2.3 浮点类型
类型名称 | 类型名称 | 取值范围 |
---|---|---|
float | 4 | -/+3.4e38(精确到6位小数) |
double | 8 | -/+1.7e308(精确到15位小数) |
long double | 12 | -/+1.19e4932(精确到18位小数) |
2.4 补充说明
可以包含***limits.h***头文件查看其它类型的宽度,使用方式如下:
/*获取char数据类型的取值范围*/
#include<stdio.h>
#include<limits.h>
int main(void)
{
printf("char:MIN %d;MAX %d", CHAR_MIN, CHAR_MAX);
return 0;
}
Tips: sizeof()可获取占用的字节数
3. 变量
3.1 什么是变量
一个装数据的容器
3.2 怎么定义变量
变量的定义如下:
[数据类型关键字] [变量名] = [初始值];
Tips: 一般而言定义变量之后最好都附初值
3.3 变量命名规则
- 只能由字母、数字、下划线组成
- 第一个字符必须是英文字母或者下划线
- 有效长度为255个字符
- 不可以包含除下划线以外的其它特殊字符
- 不可以是关键字
3.4 C语言中的关键字
C语言中共有32个关键字,目前只需了解即可,无需记忆。分别如下:
-
数据类型关键字(12个):
-
char :声明字符型变量或函数
-
double :声明双精度变量或函数
-
enum :声明枚举类型
-
float:声明浮点型变量或函数
-
int: 声明整型变量或函数
-
long :声明长整型变量或函数
-
short :声明短整型变量或函数
-
signed:声明有符号类型变量或函数
-
struct:声明结构体变量或函数
-
union:声明共用体(联合)数据类型
-
unsigned:声明无符号类型变量或函数
-
void :声明函数无返回值或无参数,声明无类型指针(基本上就这三个作用)
-
-
控制语句关键字(12个):
-
循环语句
-
for:一种循环语句(可意会不可言传)
-
do :循环语句的循环体
-
while :循环语句的循环条件
-
break:跳出当前循环
-
continue:结束当前循环,开始下一轮循环
-
-
条件语句
-
if: 条件语句
-
else :条件语句否定分支(与 if 连用)
-
goto:无条件跳转语句
-
-
开关语句
-
switch :用于开关语句
-
case:开关语句分支
-
default:开关语句中的“其他”分支
-
-
返回语句
- return :子程序返回语句(可以带参数,也看不带参数)
-
-
存储类型关键字(4个)
-
auto :声明自动变量 一般不使用
-
extern:声明变量是在其他文件正声明(也可以看做是引用变量)
-
register:声明寄存器变量
-
static :声明静态变量
-
-
其它关键字(4个):
-
const :声明只读变量
-
sizeof:计算数据类型长度
-
typedef:用以给数据类型取别名(当然还有其他作用
-
volatile:说明变量在程序执行中可被隐含地改变
-
4. 字符串
使用Ctrl+左键打开工程文件
4.1 如何定义字符串
#include <stdio.h>
int main()
{
char c = 'A'; // 0x41
char chHex = 0x42;
printf("char类型变量在内存中占%d\n", sizeof(c));
printf("0x%p\n", &c); // %p表示输出保存变量c的地址
printf("%c\n", c); // 输出为'A'
printf("%c\n", chHex); // 输出为'B'
return 0;
}
4.2 ASCII码表
4.2.1 ASCII 打印字符
4.2.2 ASCII 非打印控制字符
4.2.3 扩展ASCII打印字符
4.2.4 说明
上图引用自CSDN博客的文章,可使用Ctrl+左键打开原网站查看详细。
5. 类型强转
使用Ctrl+左键打开工程文件
5.1 为什么要进行类型强转
在C语言中同类型进行运算得出的结果也必为这个类型,如下所示:
#include <stdio.h>
int main()
{
int a = 10;
int b = 3;
// %f默认保留小数点后6位, 若想保留十位可用'%.10f'代替'%f'
printf("结果为: %f\n", a / b); // 除法的结果也为int型, 故而用%f接受的结果为0.000000
printf("结果为: %d", a / b); // 此时的结果为3, 它直接舍弃了小数部分
return 0;
}
Tips: 在进行小数运算是请保证运算数均为浮点数类型
5.2 强制转换
若在代码中只需在固定的地方将一个变量或多个变量转换成另一种类型做运算的时候即可使用强制转换,转换格式如下:
#include <stdio.h>
int main()
{
int a = 10;
int b = 3;
// 变量名前面的'(float)'就是变量类型强转的方式,
// 括号里的'float'便是强转后的类型,
// 括号中的类型可以改为其它的, 根据具体需要进行强转。
printf("结果为: %f\n", (float)a / (float)b); // 输出结果: 3.333333
// 强转虽好, 可不建议随意使用,
// 若不按规则强转, 容易出现数值失真现象。
float c = 10.5;
printf("结果为: %d", (int)c); // 输出结果: 10
return 0;
}
Tips: 在进行强制转换的过程中需重点注意浮点型转整型, 这将导致原浮点型变量的数值直接丢弃小数部分
五. 控制语句
1. 什么是语句
在C语言中,语句是程序执行的单元,程序的功能由程序中的每一条语句实现和完成,每条语句都以分号’;'结束。
2. 语句的执行顺序
在一个函数(函数的解释未更新)中,所有的语句都是从上往下执行
太晚了,睡觉了,未完待续… …