自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++primer1.1节练习

练习1.1.cpp练习1.2main函数返回值return-1 echo $?返回255 范围是0~255 一个字节8位其它函数返回-1 就是-1main函数返回值的作用,传递给程序的调用者,如操作系统。通常我没有注意到这个返回值的作用,是否也可以将一个变量作为返回值来给操作系统,从而判断程序是否执行成功?./a.out $? && echo “main excuting success”但是还是看不出main函数有什么用呀?就这么测试一行代码,确实看不到有具体作用。具体.

2020-07-20 13:30:02 227

原创 QT之实现圆角边框无锯齿

[图片]这个应该算比较完美的了参考了这个帖子:http://www.cppblog.com/biao/archive/2011/10/12/158175.html

2020-07-19 14:55:43 1462

原创 算术基本定理的证明

以下来源于百度搜索:算术基本定理的最早证明是由欧几里得给出的。而以下是用现代的陈述方式去证明。 待证命题:大于1的自然数必可写成质数的乘积。用反证法:假设存在大于1的自然数不能写成质数的乘积,把最小的那个称为n。非零自然数可以根据其可除性(是否能表示成两个不是自身的自然数的乘积)分成3类:质数、合数和1。首先,按照定义,n大于1。其次,n不是质数,因为质数p可以写成质数乘积:p=p,这与假设不相符合。因此n只能是合数,但每个合数都可以分解成两个小于自身而大于1的自然数的积。设其中a和b都是介于1和n之

2020-07-19 00:51:40 2876

原创 qt文件对话框bug

#include "cfiledialog.h"#include <QListView>#include <QTreeView>#include <QDialogButtonBox>//#include "CFileDialog.h"CFileDialog::CFileDialog(QWidget *parent) : QFileDialog(parent){ this->setOption(QFileDialog::DontUse

2020-07-08 12:55:28 220

原创 QT对话框 既可以显示目录也可以显示文件:有一个小问题,在filenams栏 不会显示目录名字

#ifndef CFILEDIALOG_H#define CFILEDIALOG_H#include <QObject>#include <QFileDialog>class CFileDialog : public QFileDialog{ Q_OBJECTpublic: CFileDialog(QWidget *parent = nullptr); ~CFileDialog();public slots: void onC..

2020-07-07 15:14:56 201 1

原创 一个基于UDP的简单通讯程序

要求:类似QQ的局域网通信工具功能:1、多个客户端进行通信(一对一) bingo!2、用户的上线、离线提醒(广播) bingo!3、每一个用户应该有上线的用户列表 bingo!4、用户之间收发消息: 既然地址会有重用,无法解决,就采取收信息时过滤,或者发信息过滤一对多(可以用组播,问题:在一个组播组中,有多个用户时端口号不同怎么去发送数据;其他)5、一对一收发文件 bingo!6、退出 bingo!

2020-07-05 18:42:04 459

原创 小数运算转整数运算

#include<stdio.h>int main(){ int b=300; int m=47; for(int a=0;a<30;a++) { int c = b/m; printf("%d\n",c); int k =b%m*10; b=k; } printf("%f",0.03/0.0047); return 0;}一个计算器,符号优先级,正负数,小数转整

2020-07-05 08:48:21 1139

原创 my_color _editt

```cpp#include "mainwindow.h"#include "ui_mainwindow.h"#include <QDebug>#include <QTime>MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){ ui->setupUi(this); QTime mytime; int h .

2020-07-05 00:14:08 110

原创 这次是结合上次的色板,实现一个简单的txt文档编辑

#ifndef FORM_H#define FORM_H#include <QWidget>#include <mainwindow.h>namespace Ui {class Form;}class Form : public QWidget{ Q_OBJECTpublic: explicit Form(QWidget *parent = nullptr); ~Form();public slots: void color.

2020-07-04 15:15:37 121

原创 QT调色板之QPushbutton true 和 false 的运用

头文件#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>#include <QPushButton>#include "QDebug"QT_BEGIN_NAMESPACEnamespace Ui { class MainWindow; }QT_END_NAMESPACEclass MainWindow : public QMainWindow{ Q_OBJECTpublic

2020-07-03 13:13:53 649

原创 为何父类指针强制转换为子类时不安全的

#include <iostream>using namespace std;class Base{public: Base(int m) { this->m = m; cout << "Base" << endl; } int m; void PrinB() { cout << "B" << m<<endl; }

2020-06-28 15:02:29 833

转载 数组模板类

#include <iostream>/*.设计一个数组模板类,完成对int ,char及自定义类型元素的管理 需要实现:构造函数,拷贝构造函数,<< ,[], = 操作符重载*/using namespace std;template <typename T>class myArrary{ public: friend ostream & operator<<(ostream &os,const myArra

2020-06-27 12:14:47 392 2

原创 汇编:第一天

变量名有三个属性:段基址,偏移量和类型

2020-06-25 18:22:35 102

原创 虚继承为什么不会出现浪费内存猜想

一直想不通为什么看人家画内存图都会把虚拟成员放到最后,如何通过虚表确定虚拟变量唯一的呢?大概是在初始化之前编译器已经根据代码分配好了内存,如上,B和C都虚继承于A,也许D继承于B,C,这样D的内存分布图其实已经编译器大致构画好了。a的变量也许不在最下面,反正在一个位置吧;然后从下依次往上是d的变量,c,b,初始化的时候反着来,额b和c对于a的偏移量怎么确定的啊!暂且还是放在最下面吧公共变量,反正B,C在D中有个先后顺序,于是对于编译器在生成内存时,遇到vtural继承,比如B中有一个intC,中有一个.

2020-06-25 08:43:08 124

原创 类模板对数组排序,以擂台的方式求最大值

#include <iostream>/*写两个函数模板:1.用来排序一个数组2.用来打印数组3.求数组的最大值*/using namespace std;//模板的实例化是在程序运行使用到的视乎才会生成//二进制代码template <class A>void mysort(A a[],int len){ while(len !=0) { for(int i = 0;i<len;i++) if(a[i] <

2020-06-24 12:18:42 300

原创 虚析构函数与虚表

这是因为 virtual 析构就会占用两个槽位,第一个是 virtual function 本身,另一个是 virtual function thunk,包含了 delete 的过程,以及一些这里用不到的东西。研究这种东西建议从汇编层面研究,推荐《c++反汇编与逆向技术分析》一书~~~~~我是一个勤劳的搬运工...

2020-06-24 07:54:34 221

原创 单链表反转的两种方法

#include <iostream>/*单向链表的反转是一个经常被问到的一个面试题,也是一个非常基础的问题。 * 比如一个链表是这样的: 1->2->3->4->5 * 通过反转后成为5->4->3->2->1。*/using namespace std;//链表class List{ public: List(int data= 0):data(data) { next= nullptr;

2020-06-23 22:27:04 348

原创 C++:每日一记

子类对象赋值给父类不会有问题,大概是因为子类包含了父类,复制的时候也只会把父类的复制给父类,父类仍然访问不到子类的成员。 父类赋值给子类,这是不允许的,因为子类比父类大,子类除了父类的东西还有自己的。如果赋值成功,那么此时的子类只有父类的东西?而子类自己的东西呢?那就没有了,所以是不允许的。 纯属猜测。。...

2020-06-22 22:39:09 80

原创 C++:静态成员函数

静态成员函数:既然普通成员函数也可以访问声明静态变量,为什么还要有静态成员函数呢?普通成员函数需要通过创建一个对象才可以使用。而静态成员函数可以直接通过类名访问,不需要创建对象。...

2020-06-22 07:47:19 105

原创 仅做记录:1 剪绳子问题

问题描述:给你一根长度为n的绳子,请把绳子剪成整数长的m段(m、n都是整数,n>1并且m>1),每段绳子的长度记为k[1],…,k[m]。请问k[1]…k[m]可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。(题目提示了要用3来做。。。。)1 要分为多少段合适2 每段的大小为多少合适长度n确定 :段数 m 和每段的大小又是息息相关的什么情况下乘积最大的不严谨数学推导:当且仅当X1 = X2 = … Xm成立的理解:

2020-06-21 19:36:58 240 3

原创 const & 作为函数默认参数的一点理解

//const引用可以hold住一个临时变量,直到这个const引用出自己的域(这是C++标准的规定)void happy(const test& tmp = test()){//test temp;cout << tmp.a<<endl;}

2020-06-20 18:27:39 712

原创 有关于浮点数不能直接比较使用关系运算符的情况

不能直接用 == 和!= 原因在于存储小数时,二进制不能精确表示,存在丢失数据;这样可能0.1 + 0.2 本来和0.3相等 却不相等了 ,所以用(0.1+0.2) - 0.3 < 某个设置的值(这个值要满足精度要求),来判断是否相等,不然可能永远都不会相等。...

2020-06-19 13:40:07 833

原创 the plural (复数)

两个复数相乘的结果就是:让它们的模长相乘得到最终的模长,让它们的幅角相加得到最终的幅角。假设我们在一艘船上:现在航行的方向是东北方向,每向东前进3就想北前进4,现在改变航向,让其逆时针旋转45度,那么新的航行的状态是怎样的?若放在复平面上,船的位置在圆心处,当前的航行状态可以这样表示3+4i,若逆时针旋转45°,则让其乘以(1+i),得到结果为-1+7I,新的航行状态就是向西行驶1,向北行驶7。来自知乎。至于为什么这就要探究复数乘法的意义了?可以推导一下,角度和模的关系在这个角度行驶5个单位,

2020-06-18 20:10:12 184

原创 INTSIZEOF 宏, 位运算 与乘除的关系

INTSIZEOF 宏,获取类型占用的空间长度,最小占用长度为int的整数倍:#define _INTSIZEOF(n) ( (sizeof(n) + sizeof(int) - 1) & ~(sizeof(int) - 1) )首先有以下证明:先举个例子,假设一个盒子能放2个球,目前有6个球,那么就需要3个盒子,若是有5个球,那么还是需要3个盒子。扩展一下,若是有n个球,每个盒子能容乃下m个球,那么需要多少个盒子???这里直接给出结论就是(n + m - 1)/m个。若m为sizeof(t

2020-06-17 14:39:27 131

原创 每日一记:变量的作用域范围

#include <stdio.h>int main(){char *s =“abcdfe”;char *x =s;while(*x++);printf("%d\n",x-s-1);return 0;} 这个可以求字符串的长度,我一度认为跳出循环后,x就不会++了,但是想到x是在main函数里面的,所有x在此作用域还是有效的会判断后再自加,如果用++i就不用减1了,比第一个字符大多少正好包含了\0,加上了第一个字符就是字符串的长度。...

2020-06-12 07:27:29 133

原创 每日一记:字符串常量不可修改 ,不要使用野指针 会段错误!!!!!

每日一记:字符串常在这里`/练习:定义两个字符串char p = “Hello”;char* pp = “World”;设计一个函数实现对两个字符串的交换(pp— Hello ,p — World)*/#include #include using namespace std;void swap(char* &p,char* & pp){char *temp = p;p = pp;pp =temp;}int main(){charp = “Hello”;cha

2020-06-11 15:59:35 124

转载 linux目录与windows的区别

2020-05-15 17:48:43 186

转载 signal与kill函数的最简单理解

http://blog.sina.com.cn/s/blog_62c8f3c90100fmji.html

2020-05-12 12:21:27 557

转载 信号和回调函数的原理

信号和回调函数的原理:http://blog.sina.com.cn/s/blog_682389380100vgkj.html

2020-05-12 12:20:18 356

转载 linux下 fork()函数详解

https://www.cnblogs.com/dongguolei/p/8086346.html

2020-05-12 01:00:32 101

原创 空指针

int *p = NULL;代表定义一个指向整型变量的指针p,然后p的值设为NULL,也就是设为0;

2020-04-22 14:09:33 92

原创 递归调用内幕 又不理解了 又看了下 其实就是函数返回值 位置问题

void up_and_down(int);int main(void){up_and_down(1);return 0;}void up_and_down(int n){printf(“level %d: n loacation %p\n”, n, &n);/1/if (n < 4)up_and_down(n + 1);printf(“level %d: n...

2020-04-22 12:09:23 314 1

原创 数组指针解引用为什么和p的值相同

*p =&arr, **p=arr 于是就是arr的值 也是地址 滑稽 。。

2020-04-21 21:37:17 329

原创 申请堆内存地址是否连续问题

堆包含一个链表来维护已用和空闲的内存块。在堆上新分配(用 new 或者 malloc)内存是从空闲的内存块中找到一些满足要求的合适块。

2020-04-21 17:05:28 475

原创 单向链表 尾插法

#include <stdio.h>#include <stdlib.h> //malloc函数头文件//1设计节点(放置数据和指针)不同数据用结构体//结构体模板struct node{//结构体内容int data;struct node* next; //指向下一个节点 ,下一个节点类型为结构体,所以指针类型为struct ...

2020-04-21 13:52:37 238

原创 字符指针 字符串 字符数组 指针大小 字符串名字和数组名

字符串名字和数组名字代表首地址也代表整个字符串或者数组;注意字符串名字和数组名字为地址,但她的类型为整个字符串或数组问题:字符串和数组怎么在栈中存的呢?应该有个名字,存放了整个数组,但是名字又代表了第一个元素首地址。char name[]={“abcde”};char *fmt={“bgtda”};int arr[]={1,2,3};char *k=name;char *p=&...

2020-04-21 09:00:45 327

原创 定义字符串的方式区别

请读程序段:char str[]=“ABCD”,p=str;printf(”%d\n”,(p+4));程序段的输出结果是____B_____。A)68 B)0C)字符‘D’的地址 D)不确定的值这样定义呢char str[] = {‘A’,‘B’,‘C’,‘D’};这样定义str[4]的值不确定。...

2020-04-20 11:09:47 174

原创 printf函数入栈问题

已知字母A的ASCII码值是65,字母a的ASCII码值是97,以下程序_____C__。main(){ char a=‘A’;int b=20;printf(“%d,%o”,(a=a+a,a+b,b),a+‘a’-‘A’,b);}A)表达式非法,输出零或不确定值B)因输出项过多,无输出或输出不确定值C)输出结果为20,141D)输出结果为20,141,20解析:a的值为13...

2020-04-20 10:26:39 286

原创 数组指针类型

int a[2][3]={{1,2,3},{4,5,6}};&a int(*)[2][3]型 &a+1a int( *)[3]型 a+1*a int *型 *a+1 *(a+1)

2020-04-20 01:45:30 86

原创 一维数组地址疑惑 (有点开脑洞 觉得可以看成三维数组 每个元素是一个??不对。。a[3][1][0]??)

#include <stdio.h>int main(int argc, char **argv){int a[3]={0,1,2};// int j[2][3]={{0,1,1},{2,3,1}};int *k=a;int **p=&k;int (*i)[]=&a;// char b[3][3][2]={{{{1,2},{2,3},{3,3}},{{4...

2020-04-20 00:53:00 118

空空如也

空空如也

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

TA关注的人

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