笔记
落影&€安奈
一个兴趣编程的小渣渣
展开
-
大端存储和小端存储的应用级理解
如果你是这样猜测,使用intp去进行按位与的加密或者与整数加减,那么结果将令你失望,原因是你不经意间算反了,你认为的"1234"+xxx实际会变成"4321"+xxx。原因是整形指针尝试将str解释为整形时,会从str[0]开始读入数据,由于是小端,那么先读入的字节将会读为低字节,也就是整数的低端,书写体的右边字节,依次以一字节读入时翻译成人能理解的方式就是"4321"。对于这句话,其实大部分学习者完全感受不到,原因是大部分的教材资料不是16位就是32位cpu,汇编容易指明XH,XL使得高低字节是明确的。原创 2023-08-31 17:29:27 · 138 阅读 · 1 评论 -
关于二重指针动态分配内存易造成的泄露问题
前篇有谈到利用二重指针进行动态内存分配,参考了几篇博客还是觉得释放有问题,所以自己检测了一下,代码如下#include<iostream>using namespace std;class A { public: A(){ cout << "A is create"<<endl; } ~A() { cout << "A is destroy"<<endl; }};int main() { A** p = ne原创 2022-04-04 12:24:51 · 454 阅读 · 0 评论 -
二重指针和指针数组的坑
最近编程时遇到了一点bug,重新梳理了一下指针数组和二重指针。或许很多小伙伴在学习时都曾听说过二维数组的数组名相当于一个二重指针,理解很容易,不过从某种程度上来说这根本就是错的,甚至具有很强的误导性。比如 int a[2][2]; int **p=a;在编译上是不通过的,因为从本质上来说,他们根本不是同一个类型。二维数组名本质是数组指针而非二重指针。这个问题的实际运用区别将会体现在以下方面一,c++动态内存分配机制 c++的new分配数组时,定义类型为数组指针...原创 2022-03-23 20:41:24 · 1119 阅读 · 0 评论 -
如何正常使用前项申明类的成员
c++允许类的前项申明,但要求申明在其他未完成定义前只能作为引用或者指针使用。 想必大家都会遇到一个这样的问题: 我有两个类,他们需要互相使用对方的成员? 理所当然的大家会想到其中一个类前项申明一下就完了,但实际操作时就会遇到问题。类在未完成定义前不允许使用其成员函数,只能作为指针或引用使用,这样就限制了我们的实际操作。 为解决这个问题,我们其实可以使用类外定义成员函数的办法解决。具体操作是:将需要使用到 前项申明类的成员 的成员函数...原创 2022-03-20 15:39:25 · 1076 阅读 · 0 评论