![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
学习笔记
.远_
这个作者很懒,什么都没留下…
展开
-
[自用2.]C++杨辉三角
如果需要在运行时确定数组的大小,可以使用动态内存分配,如 `int** box = new int*[num];在标准C++中,数组的大小必须在编译时就已知且是常量表达式,因此使用变长数组是不被推荐的,并且在某些编译器中甚至可能会导致不可预测的行为,如乱码或崩溃。` 或 `#define num 5`,这样编译器可以在编译时确定数组的确切大小,避免不确定性和乱码问题。这段代码中输入杨辉三角的行数需要是固定的,如果使用下面的代码进行定义,会出现输出乱码的情况。- **全局变量的使用注意事项:**原创 2024-08-03 09:56:52 · 407 阅读 · 0 评论 -
[自用4.2]C++为什么要使用动态内存
栈区的空间大小是有限制的,windows 上一般是 1M - 2M,如果使用堆的话,64 位 windows 10 系统的限制是 2G。2)可以用来给 “被调用函数之外的函数” 调用 “被调用函数” 内部的指针所指向的内存空间。3) 可以突破栈区的限制,给程序分配比栈区能提供的更大的内存空间。1)按需分配,根据需要分配内存,不浪费。字节的连续区域,并且返回该区域的首地址。在内存的动态存储区中分配一块长度为。原创 2024-08-09 16:37:37 · 147 阅读 · 0 评论 -
[自用5.]C++动态内存的分配、使用和释放
一般经常被使用的的变量(如某一变量需要计算几千次)可以设置成寄存器变量,register 变量会被存储在寄存器中,计算速度远快于存在内存中的非 register 变量。把全局变量在其他源文件中声明成 extern 变量,可以扩展该全局变量的作用域至声明的那个文件,其本质作用就是对全局变量作用域的扩展。程序中己动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。其中,常量是初始化的值,可以省略,创建数组对象时,不能为对象指定初始值。原创 2024-08-09 21:30:00 · 781 阅读 · 0 评论 -
[自用1.]C++地形导航系统
具体是什么问题不太清楚,课件给的代码是可以成功运行的,我的代码和课件给的代码只有细微的差别,个人觉得这些的差别并不会导致这个报错。具体的问题还没有找到。从文件读取数据到二维数组,直接将在文件中读取到的对应位置的数据 存储到代码开始创建的二维数组中。string类型的变量filename,用于保存获取到的用户输入的文件名。创建file类,便于后面对于文件打开和关闭等的操作。原创 2024-07-31 11:40:51 · 188 阅读 · 0 评论 -
[自用6.]C++动态内存常见错误总结
解决方法:暂时没想到很好的解决方法,尽量记住自己释放内存的位置,或者在保证安全的情况之下,尽量将要编写的语句放在释放语句的上面。在上面这段代码中,内存空间是在if语句中分配的,所以按照第一种情况给出的方法,删除语句应该也在if语句的大括号中出现。解决方案:在开辟新内存的时候就写好释放内存语句,其他语句在这两句语句的中间编写,养成这样的习惯,可以最大化避免重复释放内存。解决方法:在动态分配内存的时候,尽量不要使用指针++的方法来进行操作,可以使用比较常规的p[i],如下。原创 2024-08-10 22:46:19 · 532 阅读 · 0 评论 -
【自用11.】C++枚举
enum 枚举名 {枚举元素 1,枚举元素 2,……//例如spring,summer,autumn,winterspring,summer,autumn,winterspring,summer,autumn,winter} s;原创 2024-08-13 18:43:58 · 172 阅读 · 0 评论 -
[自用5.补充] 函数返回值使用指针
由于main函数中sum=add1(a,b),所以sum所指向的地址正是add1所返回的add1函数中局部静态变量sum的地址,因此main函数中sum=add1(a,b)实际上是将sum的值修改为8888。程序报错,因为add中的sum是局部变量,在add函数运行结束之后被释放,所以在main函数中不可以再使用该sum的地址。之后main函数中*sum=8888将sum指针所指的地址中存储的内容修改为了8888。说明刚开始sum的值被初始化为0,运行sum=a+b之后sum的值变成5.原创 2024-08-10 21:18:00 · 250 阅读 · 0 评论 -
[自用8.]C++地震检测项目
计算各个时间点上的短时间窗口和长时间窗口的能量值,打印出可能的地震事件时间,在这里,因为会涉及到频繁调用短时间窗口和长时间窗口的能量值,我们可以将计算能量值设计为单独的一个函数。从数据文件读取地震数据,从键盘读取计算能量的短时间和长时间窗口测量值的数目;读取文件头并分配内存;原创 2024-08-11 22:38:31 · 308 阅读 · 0 评论 -
[自用3.]C++双色球系统练习题
其中,函数定义中的*min是指定义了一个指针变量,在上面这段代码中是int *min代表这是一个指向整型变量的指针,也就是说其中保存的是一个整型变量的地址,也就是main函数中min这个变量的地址。在函数内部的*min代表着,取这个地址中的值,也就是说MaxMin函数中min是一个地址,*min就是取这个地址中的值,也就是main函数中min 整型变量的值。main函数中和MaxMin函数中的min是不一样的,main函数中的min是一个整型变量,MaxMin函数中,min是一个指向整型变量的指针。原创 2024-08-03 18:18:14 · 334 阅读 · 0 评论 -
[自用10.1]C++结构体
struct结构名成员类型 成员名;成员类型 成员名;int age;特别注意:1)要以struct开头2)最后要使用分号3)各成员之间用分号隔开。原创 2024-08-12 20:37:13 · 267 阅读 · 0 评论 -
[自用7.]C++补充项目-推箱子游戏-未执行版
将上图划分为小的方格,使用二维数组代表每个方格,二维数组中存储不同的数字代表方格不同的功能,比如:墙、箱子、小人、目标位置、路。备注:由于设备问题,上述代码未执行,仅供参考,后期会补充执行后的版本。原创 2024-08-11 22:15:31 · 677 阅读 · 0 评论 -
[自用9.]C++宏
由三部分组成 #define WIDTH 960预处理指令 宏名 替换体(多行可用延续#define _width 1024 //宏命名规则同变量名#define ADDR "中华人民共和国湖南\省平江县"printf("我的祖籍: %s\n", ADDR);return 0;是一种预处理器指令,在预编译阶段将宏名替换为后面的替换体。原创 2024-08-12 19:57:22 · 173 阅读 · 0 评论 -
【自用10.2】C++结构体-指向结构体的指针&使用结构体传递值
返回引用的方法可以成功运行出结果,但是有一个警告,需要注意一下,尽量使用其他方法。实际开发中,常用第二种方式来访问结构体指针变量的成员。一般不建议把结构体直接作为函数参数。比较大,直接传递,消耗性能!原创 2024-08-13 18:19:25 · 371 阅读 · 0 评论 -
[自用4.1]C++程序的内存分布
起初这段代码我有一些疑惑,是关于为什么函数在定义时,设置的传入参数是char类型的常量指针,按道理只是这个字符串的首地址,那为什么在输出的时候,只需要写msg,而不是*msg。是一个指向字符常量的指针,所以它可以指向字符串常量或者字符数组的首地址。格式控制符时,它期望一个指向以 null 结尾的字符串的指针。):全局变量和静态变量的存储是放在一起的,在程序编译时分配。):由编译器自动分配释放,存放函数的参数值,局部变量值等。就是这样的指针,指向了函数调用时传入的字符串的首地址。是一个指向字符串的指针,原创 2024-08-07 14:08:32 · 537 阅读 · 0 评论 -
【自用12.】C++类型定义
1.简化写法2.提高程序可移植性//64 位 linux 系统//梦想一百亿return 0;运行结果://32 window 系统//梦想一百亿return 0;原创 2024-08-14 18:00:00 · 334 阅读 · 0 评论