c
C++1.数据类型
1.第一个代码分析
1.数据类型
定义一个变量或者常量 其实就是开辟了一块不同大小的空间,根据定义的格式来决定空间的大小,然后给这个空间起一个名字,然后在空间里存一个值,如果值的大小超过了空间的大小,就会造成数据的丢失。输出的时候,可以自己定义输出个格式,就是把空间的值给拿出来,然后按照要求来输出,输出的格式跟空间的格式没有关系,因为空间的格式只是为了决定这个空间的大小。
类型 | 大小 (字节) | 范围/精度 |
---|---|---|
bool |
1 | true 或 false |
char |
1 | -128 到 127 或 0 到 255 |
signed char |
1 | -128 到 127 |
unsigned char |
1 | 0 到 255 |
short |
2 | -32,768 到 32,767 |
unsigned short |
2 | 0 到 65,535 |
int |
4 | -2,147,483,648 到 2,147,483,647 |
unsigned int |
4 | 0 到 4,294,967,295 |
long |
4 或 8 | 平台相关 |
unsigned long |
4 或 8 | 平台相关 |
long long |
8 | -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 |
unsigned long long |
8 | 0 到 18,446,744,073,709,551,615 |
float |
4 | 约 7 位十进制数字精度 |
double |
8 | 约 15 位十进制数字精度 |
long double |
8, 12 或 16 | 平台相关,更高精度 |
1 字节 (Byte, B) = 8 位 (bit)1 KB (Kilobyte) = 1024 B1 MB (Megabyte) = 1024 KB1 GB (Gigabyte) = 1024 MB1 TB (Terabyte) = 1024 GB
1 变量和常量
1.1 关键字
1.2 变量
2.整形和变量的定义和输出
3.整形的输入
scanf 是不安全的,如果不按照要求格式输入就会造成溢出,但是也会接受,但是数据就会丢失部分,所以有可能报错
4. short int long longlong
输出
输入
5.字符型
chor 存储是以 ascii 码形式存储
2.关键字 sizeof
3.转义字符
4.浮点数
单精度 4 个字节 双精度 8 个字节
5.类型限定符
2.运算符
1.算数运算符
2.逻辑运算符
3.运算符优先级
多个运算符的时候建议用()括起来,可读性更高 逻辑更清晰
4. 类型转换
5.条件判断 if
6.三目运算符
满足下 x>y 返回 x 否则返回 y
嵌套
7.switch
8.while
9. do while
10.for 循环
11.跳转语句
1.continue
2.break
break 只跳出离它最近的一层循环;break 只能在 switch 和循环中使用
3.goto
12.数组
12.1 一维数组的初始化
12.2 二维数组初始化
12.3 字符数组和字符串的区别
13.字符串的输入输出
fgets 可以指定接受到数据的大小,并且会接收换行的转义字符,如果打印的话 还会进行换行,并别\n 会占一个元素,而且指定接收大小的时候,会少接收一位,因为要自动补一个’\0‘,作为字符串的结束
前两个不安全,超出范围会报错,fgets 超出范围不会报错,但是只会接收规定范围的数据,超出的不接收。
13.1 字符串的拼接
14.函数
14.1 函数的构造
14.2 函数声明 和 exit 函数
14.3 分文件编程
14.4 防止头文件重复包涵
15.指针
15.1 含义
指针本质就是指的是内存地址;
指针变量指的是存储内存地址的变量;
15.2 p 和 *p
。
1. 概述
2. 文件的打开
3.文件关闭
4.按照字符读写文件
以字节的方式读文件
5.按照行来读写文件
fgets
memset 是为了把 buf 里面的数据清空,防止后面写进去后读操作时读取到旧的数据.
训练
1 | #define _CRT_SECURE_NO_WARNINGS |
}
6.按照格式化 读写文件
读文件
读取的时候,需要用变量来接收
7.按照块读写文件
8.文件的随机读写
9.获取文件信息
将文件的信息保存在一个结构体内
10.删除文件和更改文件名字
c 高级
void
sizeof
指针 堆栈
const 修饰常量
const 修饰的全局常量 直接和间接修改都不能保护,因为是在常量区中
const 修饰的局部变量,不能直接修改 间接可以修改,因为实在栈中,不受保护,是一个伪常量
字符常量
宏
指针
字符串指针强化
或者设置数组的元素个数多一点,会自动加一个 ‘\0’
答案 6 5
strlen 统计的时候不算上‘\0’
strof 统计的是整个数组的长度
答案 100 5
字符串函数
赋值的操作 注释是例子 把 while 里 a=0 改成 1 运行两次看结果来理解这个操作
用指针方式实现反转
格式化 sprintf
堆
和 malloc 唯一的区别会自动把内容内容初始化为 0;
realloc 是重新分配空间是用的
格式化 sscanf
忽略某种类型的字符 遇到空格和 \t 和第一个非该字符 会结束忽略 注:**非常不好用**
这个也不好用,匹配到第一个非范围内的字符就会停止 可以搭配忽略来用
匹配到第一个设定的字符就停止
容易出错的点
指针偏移后 在释放指针 不会把前面的空间释放了 会报错
这种可以定义一个临时指针指向原指针,代替原指针进行操作,最后释放原指针就行了
将局部变量返回并调用,会乱码,因为局部变量在函数结束时就释放掉了