- 博客(13)
- 收藏
- 关注
原创 day07
遵循字节对齐的原则空类占的内存大小:1字节;目的:就是为了让你能够调用它的成员函数!空类中有默认的6个成员函数:默认构造函数、析构函数、拷贝构造函数、=赋值运算符、&运算符、&运算符 const。
2023-02-20 22:09:25 137 1
原创 day06
重定义(隐藏):在继承关系中,子类有和父类同名的成员函数,父类的函数被隐藏了!同名:函数名相同即可!不加virtual是重定义何时重定义: 父类的成员函数实现的效果满足不可子类需求重写(覆盖): 在继承关系中,子类重写父类的虚函数,父类的虚函数在这个子类中被覆盖了!函数的首部是一模一样的!重载: 必须在同一个作用域中, 函数名相同,功能相似,参数不同,与返回值类型无关的一组函数互为重载!
2023-02-20 21:51:32 102
原创 day05
底层结构:双向循环链表使用:#include 新增:访问:删除:修改:Splice:移动:底层结构: 二叉树 特点:查找速度很快 书写结构: 哈希表 Key ---valueMap的特点:会自动排序,按key值从小到大的顺序排序 Key-value的键值对 根据key可以快速的找到value值,他们是一一对应的关系新增:访问:删除以及修改:面试题目:知道STL ?用过里面的什么容器?他们之间的区别是什么?vector、list、map的区别回答的时候:
2023-02-20 21:34:32 101
原创 day04
函数重载:函数名相同、函数功能相似、参数不同(个数、类型、顺序)、与返回值类型无关的一组函数!运算符:+、-、++、--、 = 等等为什么要进行重载的?两数求和:类型: int、 double、char、 类对象求和呢?为什么要进行运算符重载:让我们的运算更丰富一些,适用各种各样的数据类型!运算符重载的方式有几种?两种,一种是使用成员函数进行重载;使用友元函数进行重载。+: 必须是两个注意:运算符重载的时候,操作数的个数是不能发生变化的,并且参数是不能有默认值!
2023-02-20 21:05:25 87
原创 day03
回顾一下C中的static的作用static修饰全局变量:限制全局变量的作用域static修饰局部变量:延长局部变量的生命周期static修饰函数: 限制了函数的作用域案例:学生类 学生学号想让它自增,如何实现?
2023-02-20 20:49:40 61
原创 day02
面向过程编程:一步一步的去实现;面向对象编程:点外卖,坐等着吃在整个程序都是由一个一个的对象组成对象是由数据结构+算法组成的,这个其实就是通过面向过程实现的!C里面面向对象:是由结构体来实现的!链表==》就是一个一个的结构体组成;除了设计了结构体,还有封装了一些函数(对链表进行增删改查的操作)。什么是结构体: 为了描述一类事物的属性而自定义的一种数据类型!学生:属性: 学号、姓名、性别、出生日期、成绩。我们结构体只能描述属性,并不能把学生描述的活灵活现的,缺少行为。
2023-02-20 20:19:46 79
原创 day01
各自是什么?特点?不同地方?字面上: 第一个词是一样,C++是完全兼容C,只要是合法的C的程序在C++中都是合法的!C++是C的增强版本. C++比C多了两个+,C++中扩展了很多内容,数据类型:引用、类类型、布尔类型等!关键字:friend、class、bool、public等!.编程思想是不一样的,C语言是面向过程的结构化的程序设计语言,中级语言。C++是面向对象的编程语言,更接近自然界的发展规律!什么是面向过程。
2023-02-20 19:42:03 57
原创 数据结构重要思维导图
下面这段代码非常固定思路就是:先定义结构体里面的数据类型,然后定义结构体并同时改名,然后用malloc函数申请空间,再用memset函数进行至零。数据结构主要是运用结构体,所以c语言阶段的结构体需要细心学习。关于链表的操作中插入要遵循线连接后断开,删除要遵循先断开后插入。队列的特点:先进先出,只允许队尾插入,队头删除。注意这里栈的特点是先进后出。
2022-12-18 14:37:06 105
原创 二维数组地址及指针辨析详解
注意arr的地址是与&arr一样的但是类型不一样,&arr代表整个数组,arr代表数组里面的首元素的地址。Eg:int arr[3] = {1,2,3}//arr的类型是int *(注意这里不要说成是int [3]类型,因为arr是数组名,数组名代表数组首元素的地址,地址就是指针,指针的类型就是int *)直接这里可以记住这个规律他这里问的是arr的类型,不是int arr[2][3]的类型,arr的类型是int (*)[3],int arr[2][3]的类型是int [2][3],这里问的是这个整体。
2022-11-28 10:07:38 331
原创 二维数组元素的地址问题,超详细解读。
/a[0]列地址,*(a+0)也是列地址 printf("%d,%d\n",&a[0],&a[0][0]);//&a[1][]0],*(a+1)+0代表的列地址 这里都是打印出0xa111这样的相同地址。&代表的是取地址,&与*和&与[]是逆运算。
2022-11-26 20:12:50 2771
原创 c语言中的内存分区存储情况
存储类型 auto,static,extern,register auto:修饰的局部变量,存储在栈区。extern:修饰全局变量,存储在静态区。我们在32位计算机上,c语言运行时可以大致分为内核,堆区,栈区,静态区(.data初始化过的全局变量和静态变量,.bss未初始化过的全局变量和静态变量),常量区,代码段。
2022-11-20 17:16:50 510 1
原创 关于printf函数的打印顺易错点
这里打印出来的是3,3不是2,3的原因是,在printf()函数的括号内,我们的运算顺序是从右到左,所以这里先对++a进行运算得3,此时的a就是3了,然后打印两次a的值,我们要注意的是这里的打印顺序是从左到右,而运算顺序是从右到左。理解这里的打印顺序可以帮助我们更好的理解printf函数。
2022-11-20 16:40:09 282
原创 计算机中数字储存原理理解
先看a变量,a是一个正数,在内存中的存储形式是1000 0001(正数的原码反码补码都一样),然后看a的类型,为字符型,一个字节刚好占8个二进制位,然后他又是一个有符号的,看最高位,最高位为1,代表的是一个负值,此时内存中的1000 0001代表的是补码,我们现在需要对其用有符号的十进制形式输出,所以就要转成原码,1000 0001先减一变成反码 1000 0000,然后除开符号位全部取反, 得到原码 1111 1111,此时转成有符号的数就是-127,输出a=-127。
2022-11-20 16:22:55 248
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人