自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 关于QT中QPushbutton中边界问题的解决方案

我使用的QT版本是5.14.1,创建项目的时候选择的是MinGW32-bit,在使用QPushbutton编写一个小demo中遇到一个问题,此demo实现的功能是在Dialog窗口中创建一个pushbutton,当按下鼠标时该按钮向下移动,松开鼠标时,该按钮会向上移动回到原来的位置;但是当具体实现时,当在pushbutton的边界按下与释放鼠标时,该按钮只会向下移动,而不会向上移动回到原来的位置,通过调试代码可以看到在点击边界时,只调用了点击事件的槽方法,而不会调用释放事件的槽方法。

2023-09-02 11:36:24 263

原创 QT对象树解析

通过调试信息可以看出,在程序运行的时候分别调用构造函数对对象进行创建,但是当程序结束后只执行了test_widget的析构,因为test_widget是系统分配的内存在main函数结束后会自动析构,而其他对象通过new进行内存分配,在程序结束后由系统统一进行回收。有调试信息可以看出,当test_widget窗口被关闭时,其所有的子窗口都将被析构,这就是QT的对象树,通过一定的关系将部件与窗口关联起来,当主窗口关闭时,就会析构其中的子窗口与部件。

2023-08-30 22:43:00 47

原创 函数返回值作为左值对数组进行赋值

【代码】函数返回值作为左值对数组进行赋值。

2023-07-22 22:18:43 52 1

原创 位图算法的实现

【代码】位图算法的实现。

2023-07-19 14:54:49 38

原创 行星碰撞算法

给定一个整数数组,每一个元素,其绝对值表示行星的大小,正负表示行星移动的方向,正表示往右移动,负表示向左移动,他们移动的速度相同。碰撞规则:1、如果两个行星碰撞,较小的行星会爆炸。2、如果大小相同,则两颗都会爆炸。3、两颗移动方向相同的行星永远不会发生碰撞。

2023-07-14 19:57:21 144 1

原创 数组存储元素所对应的地址的解析

p1指向&a+1其位置如图中所示,指向的是数组a地址的后面,此时p1[-1]就相当于是*(p1-1)即在原地址上减去4字节(一个int类型的大小),此时p1-1指向的地址就是数组a的最后一个元素,输出p1[-1]的值就为5。(&a+1)由图可以看出和(&a)相比增加了20字节,即增加了一个数组的大小;而(int)a+1与(int)a相比增加了1个字节,此时来分析为何p1[-1]的值为5,而*p2为2000000。

2023-07-12 17:43:47 105 1

原创 const定义指针时位于不同位置的修饰效果

当const位于*前面时,const修饰的是*p,此时指针p可修改其指向的地址,但不能修改*p所指向的值,如图中的p1与p2。当 const在*后面时,cosnt修饰的是p,此时指针不能修改其指向的地址,但是能修改其指向的值,如图中的p3。当const在*前后都有时,此时指针既不能修改其指向的地址,也不能修改其指向的值,如图中的p4。

2023-07-11 20:48:39 60 1

原创 static在函数内声明与函数外声明的不同

当全局变量i被static修饰后,在函数中如果再对其进行初始化那么每一次调用都会将其初始化为0,所以输出的每次结果都为1;在函数中j被static修饰时,只会初始化一次,故每次调用都会使其的值加1。

2023-07-09 11:40:05 106 1

原创 万能指针与柔性数组

柔性数组,(我觉得也可将之称呼为弹性数组),他的主要原理是你不知道存贮元素的具体大小时,可通过对其的动态分配实现资源的合理利用,不会使内存出现过多的的问题。定义一个void *pv的空类型指针,此时他可以指向任何的数据类型,要对其输出时,只需带上指向的类型便可进行打印,上述代码输出分别为12、B、3.14。

2023-07-08 16:36:08 41

原创 指针数组、函数指针与回调函数

函数指针的定义要满足定义的指针包含类型要和函数的类型保持一致,如函数void sport(string str,int n);此时函数指针sp指向函数sport,用sp("打球",1);定义一个数组a与一个指针数组p,可以使用for循环将指针数组里的每一个指针分别分配给数组a里的每一个元素。此时*p[0]=1,*p[1]=2,*p[2]=3........上述代码实现了通过输入不同的数值会调用不同的函数,后续如果有新的回调函数只需将其添加入函数指针数组中,其他的代码不需要改变就可进行调用。

2023-07-07 09:54:34 38 1

原创 数组指针学习心得

定义一个int类型的二维数组,并定义一个数组指针指向该二维数组,此时输出pa1为二维数组pa1的首地址,输出*(*(*pa1+1)+2)可获得数组a1[1][2]的元素6。*(*pa1 + 0)+0指向的是a1[0][0]的地址。定义一个int类型的一维数组,此时指针指向的位置为该数组的首地址,此时输出的pa为数组a的首地址,*pa为数组a的第一个元素。

2023-07-06 18:36:06 47 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除