
C++
文章平均质量分 71
哦...
这个作者很懒,什么都没留下…
展开
-
C++的“array”和“&array”有什么区别?
如果在C++中定义了一个数组,例如“ int array[5] ”,那么“ array ”或“ &array ”是什么意思?它们是相同的还是不同的?让我们一探究竟!要检查这一点,首先可以想到的是以下程序:“ array ”和“ &array ”输出的地址是相同。虽然地址的内容相同,但它们是不同类型的地址。这才是“ array ”和“ &array ”真正的区别。为了显示这种差异,修改一下上面的程序:运行结果: 将整数添加到指针时会指向该指针类型的下一个地址。从输出结果可以看出:arra原创 2022-06-03 03:55:41 · 477 阅读 · 0 评论 -
浮点数的二进制表示
文章参考自:浮点数的二进制表示(IEEE 754标准)1. 小数用二进制如何表示首先,给出一个任意实数,整数部分用普通的二进制便可以表示,这里只说小数部分如何表示例如0.6将该数字乘以2,取出整数部分作为二进制表示的第1位;然后再将小数部分乘以2,将得到的整数部分作为二进制表示的第2位;以此类推,直到小数部分为0。特殊情况:小数部分出现循环,无法停止,则用有限的二进制位无法准确表示一个小数,这也是在编程语言中表示小数会出现误差的原因下面具体看一下小数0.6用二进制表示的计算过程..原创 2022-05-05 14:38:52 · 12525 阅读 · 2 评论 -
我对C++变量的认识
先看一段程序#include <iostream>using namespace std;void fn(int *ptr) { static int i=1; ptr = &i; } void fn2(int **ptr) { static int j=1; *ptr = &j; } int main() { int num=0; int *p = # fn(原创 2022-03-23 22:17:24 · 934 阅读 · 0 评论 -
通过一个自定义字符串类学习一下C++中的BIG THREE
C++的BIG THREE拷贝构造函数、操作符=和析构函数称为C++的BIG THREE。原则上,如果需要定义其中一个,就必须定义全部三个。虽然,缺少任何一个,编译器都会帮你自动创建对应的函数,但是自动创建的函数可能达不到预期的效果。一般而言,如果类中的所有成员变量都是预定义类型(例如int、double等),那么编译器自动生成的拷贝构造函数和操作符=函数能很好的工作,但加入类中包含自定义类或指针成员变量,那么它们会表现失常。所以,通用性的结论是:凡是使用了操作符new的任何类(使用了new就必然会包原创 2022-03-13 23:06:35 · 1259 阅读 · 0 评论 -
从string 转换为const char *和char * (附带string中c_str、data、copy(p,n)函数的用法)
本文转自:如何从string 转换为const char *和char * (附带string中c_str()、data()、copy(p,n)函数的用法)内容做了部分删改和排版。string可以被看成是以字符为元素的一种容器。标准的string类提供了STL容器接口。具有一些成员函数比如begin()、end(),迭代器可以根据他们进行定位。与char*不同的是,string不一定以NULL('\0')结束。string长度可以根据length()得到,string可以根据下标访问。所以,不能将s转载 2022-02-17 16:38:26 · 4276 阅读 · 0 评论 -
SFML1 俄罗斯方块代码解析
原始代码呈现:#include <SFML/Graphics.hpp>#include <time.h>using namespace sf;const int M = 20;const int N = 10;int field[M][N] = {0};struct Point{int x,y;} a[4], b[4];int figures[7][4] ={ 1,3,5,7, // I 2,4,5,7, // Z 3,5,4.原创 2022-01-31 04:17:18 · 3222 阅读 · 0 评论 -
创建cocos2dx项目
1. 从官网下载3.17.2版本的cocos2dx开发包(是一个压缩文件)。2. 解压后(例如解压到D:\cocos2d-x),将如下路径信息添加到环境变量PATH中:D:\cocos2d-x\tools\cocos2d-console\bin,这样可以在任意位置使用bin文件夹下的cocos.py脚本。3.创建Python2的环境(可以是虚拟环境)。cocos2dx的项目创建需要利用bin文件夹下的一个python脚本cocos.py来实现。该Python脚本的运行环境是Python2。4原创 2022-01-04 11:00:49 · 4342 阅读 · 0 评论 -
优先级队列(priority queue)
0x00,优先队列(priority queue)priority queue是一个用"堆"实现的,类似set的容器,有着queue的基本功能。特征是"具有优先级,可以按照优先级出队"可能不是特别好理解,其实就是一个排序啦。。。举个栗子:3入队,4入队,1入队,如果是queue的容器,出队顺序为3,4,1,而priority queue则在内部会排好序,出队顺序为4,3,1。这种数据结构在解决一些高级问题,例如贪心类问题,或者迪杰斯特拉算法,都可以更加方便的解决问题。0x01,声...转载 2021-05-30 16:44:44 · 1107 阅读 · 0 评论 -
结构体构造函数使用总结
三种结构体初始化方法1.利用结构体自带的默认构造函数2.利用带参数的构造函数3.利用默认无参的构造函数要点:在建立结构体数组时,如果只写了带参数的构造函数将会出现数组无法初始化的错误!!!各位同学要牢记呀!下面是一个比较安全的带构造的结构体示例struct node{ int data; string str; char x; //注意构造函数最后这里没有分号哦! node() :x(), str(), data(){} //无参数的构造函数数组初始化时调用 node(..转载 2021-05-29 14:51:14 · 983 阅读 · 0 评论 -
左值和右值
左值就是那些可以出现在赋值符号左边的东西,右值就是那些可以出现在赋值符号右边的东西。这里有个例子:a = b + 25;a是个左值,因为它标识了一个可以存储结果值的地点;b+25是个右值,因为它只指定了一个值。它们可以互换吗?b + 25 = a;原先用作左值的a此时也可以当作右值,因为每个位置都包含一个值。然而,b+25不能作为左值,因为它并未标示一个特定的位置。因此,这条赋值语句是非法的。其实,当计算机计算b+25时,它的结果必然保存于计算机的某个地方。但是,这个地方程序原创 2021-03-14 01:18:04 · 207 阅读 · 0 评论 -
cout格式化输出(输出格式)完全攻略
本文转自C语言中文网刊载文章(原文地址)有时希望按照一定的格式进行输出,如按十六进制输出整数,输出浮点数时保留小数点后面两位,输出整数时按 6 个数字的宽度输出,宽度不足时左边补 0,等等。C语言中的 printf() 函数使用以%开头的格式控制符,例如 %X、%.2f、%6d 等;C++中的 cout 对象则使用流操作算子(你也可以叫做格式控制符)或者成员函数进行控制。使用流操作算子C++ 中常用的输出流操纵算子如表 1 所示,它们都是在头文件 iomanip 中定义的;要使用这些流操纵算子.转载 2021-03-08 23:10:51 · 10414 阅读 · 0 评论 -
C++中变量声明顺序的不同导致不同的运行效果嘛?
输入移动位数n,然后接受用户输入的四个字符,每个字符向后移动n位实现凯撒密码加密。例如,输入n为3,再输入abcd,输出defg。只考虑小写字母的情况下,部分代码如下: int n; char c[4]; cin>>n; cin>>c; for(int i=0;i<4;i++) { ...原创 2019-05-27 12:11:25 · 866 阅读 · 1 评论 -
C/C++ 彻底解决结构体的sizeof问题
原文地址:C/C++ 彻底解决结构体的sizeof问题引言相信在大多数人开始学习编程时,老师都会谈到各种数据类型的size问题。比如说一个int类型的变量大小是4byte,一个char类型的变量是1byte。这些问题都很好解决,但是当谈到一个结构体的大小时,答案往往就不那么肯定了。这个问题我困惑了很久,查找了不少资料后终于有所体会。现在特意记录下来,谈一谈计算机中各种数据类型的size到底是...转载 2019-03-08 11:04:33 · 1188 阅读 · 0 评论