ToB企服应用市场:ToB评测及商务社交产业平台
标题:
数据结构DAY1
[打印本页]
作者:
李优秀
时间:
2024-12-11 10:49
标题:
数据结构DAY1
思维导图
一、关键字的学习
(1)const 关键字
const用于声明常变量,表现该变量的值不可以修改,称为常变量(只读变量)。
它可以修饰基本数据范例,指针或结构体。
(2)static 关键字 【静态】
在函数内部声明的静态变量,变量的生命周期从步伐的开始到步伐的竣事而竣事,但是作用域依然限于函数内。
在文件内声明全局静态变量或函数,其只能在当前文件中访问,无法在其他文件中使用。
(3)extern 关键字
extern 用于声明一个变量或函数,在其他文件中定义,常用于多文件步伐中。
二、内存空间划分
① 一个进程启动后,系统会为该进程分配4G内存空间。
②3G~4G是内核空间,重要是底层驱动部分。
③ 0~3G是用户空间,重要是步伐员写代码的操作部分。
0~3G的用户空间,又可以分为:栈区、堆区、静态区
④ 静态区又划分了4个段:.bss段、.data段、.ro段、.txt段
⑤ 所有的进程共享3~4G的内核空间,每个进程会独立拥有0~3G的用户空间。
⑥ 应用层重要操作0~3G的用户空间,底层重要操作3~4G的内核空间
栈区的特点
计算机主动申请空间,主动开释空间
栈区存放数据的特点:先进后出(FILO-->First In Last Out),后进先出(LIFO)
栈区对数据申请空间的先后顺序:所在从大到小。
堆区的特点
手动申请,手动开释
堆区存放数据的特点(符合队列的头脑):先进先出(FIFO)、后进后出
堆区的数据申请空间的先后顺序:所在从小到大
三、动态内存分配和接纳(即:在堆区申请空间、开释空间)
在C语言中使用malloc()函数申请堆区空间,使用free()函数开释堆区空间
malloc()函数、free()函数
malloc()函数功能:申请堆区空间
需要包含头文件:#include<stdlib.h>
函数返回值: void *, 使用时 需要强制转换
参数:申请空间的字节巨细,以字节为单位,可以借助于sizeof()运算符
eg:
单个申请: int *p1 = (int *)malloc(sizeof(int)); // ====>int *p1 = (int *)malloc(4);
一连申请: int *p2 = (int *)malloc(sizeof(int)*3)
[内存泄漏,申请空间不开释。如何避免:在合适的位置开释空间]
2. free()函数功能:开释堆区空间
需要包含头文件:#include<stdlib.h>
函数返回值: void
参数:要开释的指针 (指针存储的堆区空间的所在)
野指针
野指针就是未初始化或者未赋值,又或者开释之后,没有置空的指针
四、传值、传所在、值返回、所在返回
1】左值:即可以放在等号的左边,也可以放在等号的右边,有所在空间。例如:变量、堆区空间
2】右值:只能放在等号的右边,没有所在空间。例如:常量、临时值、表达式的结果
3】传值:将实参转达给形参的过程,传值就是将实参的数据复制一份给形参,所以形参的改变,不会影响实参。
4】传所在:将实参的所在转达给形参,形参可以是指针,也可以是数组进行吸收,可以改变实参的数据,具体要看代码操持。
5】将一个数据返回,该函数的返回值,只能作为右值(值不能被改变)
6】将一个数据的所在返回,(保证该数据的生命周期要足够的长),该函数的返回值,可以作为左值。
五、再学const关键字
1】const修饰的变量,表现常变量,只读变量,意味着该变量的值不能被改变。
2】const修饰的全局变量在静态区.ro段, const修饰的局部变量在栈区。
3】const必须定义的同时初始化。
4】const联合指针的使用:
普通指针不能指向const修饰的常变量;使用:int const *p
如果想生存常变量的所在,需要对指针加以限制。
int const *p; //表现该指针的指向可以改变,指针指向里的值不可被改变【指针常量】
int * const p;//表现该指针的指向不可变,指向里的值可变。【常量指针】
int const * const p; //都不可变
六、范例重定义 typedef
给已有数据范例重新起个名字。可以使代码简便、易懂。
七、宏定义 define
1】宏是一种预处理指令,常用于常量、函数、表达式等,进步代码的可读性,维护性。
2】宏只做更换,不做计算、也不做准确性的查抄
带参宏的定义
#define MAX(x,y) x>y?x:y
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4