- 博客(15)
- 收藏
- 关注
原创 c++ New和Delete详解
我们知道new作用之一是开辟空间,其底层还是调用了malloc,但与malloc不一样的是当机器执行空间申请操作失败后,malloc返回了一个NULL指针,而new的反应则是抛异常以提供捕获,因此虽然new原则上是调用了malloc,但更进一步说,new是调用了malloc的封装函数operator new,然后再执行类的构造函数,相应的delete是调用了析构函数再调用free的封装函数operator delete,其中operator delete就包含了free。果是自定义类型的对象,需要使用。
2023-08-01 19:27:11 138 1
原创 动态内存管理
动态内存是程序员对系统内存的维护操作。我们知道系统中常见的几个空间有栈、堆、静态区和常量区。通常情况下,在程序中定义的对象都有对应的生命周期,其中在main函数或者其他调用的函数中直接定义的对象编译器会将其保存在栈区,保存在栈区的对象出了生命周期便会被系统自动销毁回收,而由程序员通过内存管理的对象会在堆区被创建,其生命周期在在程序员创建到主动调用销毁或者程序结束系统强制销毁之间。而内存的动态管理方式是程序必不可少的一部分,在c/c++程序中广泛使用。
2023-07-31 23:56:44 110 4
原创 寻找单身狗
给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。来源:力扣(LeetCode)链接:https://leetcode.cn/problems/single-number这题的解题思路是异或,题目要求时间复杂度为线性,在异或的解法中,只遍历了一遍数组,时间复杂度就是O(N),而空间开辟只有一个变量,即空间复杂度是一个常量,即O(1),满足题目要求。
2023-03-31 23:36:42 132 4
原创 自定义类型(结构体)
如上代码块,其中跟在结构体定义之后的S,L和main函数中的i , n都属于结构体变量,两者不同的是在main函数外的S,L属于全局变量,而i,n属于局部变量。
2023-03-26 22:53:31 50 2
原创 字符函数和字符串函数
作用:求出给定地址到字符末尾'/0'之间的字节数格式:size_t strlen ( const char * str );1.2函数模拟函数实现思想:由于函数参数接收是一个字符指针,每当指针不断向后移动所指向的内容不为'\0'时,其计数器就加一,当指针str指向字符串末尾时,直接返回计数器中的值。函数作用:将一个字符串内容拷贝到指定字符串中去。函数格式:char * strcpy ( char * destination, const char * source );2.2函数模拟实现函数实现思想:从指定
2023-03-16 16:52:11 59
原创 关于折半查找那些事
折半查找法是效率较高的一种查找方法。 假设有已经按照从小到大的顺序排列好的五个整数a0~a4,要查找的数是X,其基本思想是: 设查找数据的范围下限为l=0,上限为h=4,求中点m=(l+h)/2,用X与中点元素am比较,若X等于am,即找到,停止 查找 ;否则,若X大于am,替换下限l=m+1,到下半段继续查找;若X小于am,换上限h=m-1,到上半段继续查找;如此重复前面的过程直到找到或者l>h为止。 如果l>h,说明没有此数,打印找不到信息,程序结束。
2023-01-12 13:21:09 93
原创 C语言循环结构和分支
当程序执行时,函数从主函数进入,为常量i分配了一个int类型的空间并赋值为10,下一步就是进入if语句分支,此时i = 10 满足(i >= 10)进入下方的执行语句,打印出“666”,下一步程序指向下一个if(不是else 后面的 if),即...
2023-01-09 01:02:16 151
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人