<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[LSH1314521的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/LSH1314521</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; LSH1314521]]></copyright><item><title><![CDATA[工具-在VS2019中使用QT的方法]]></title><link>https://blog.youkuaiyun.com/LSH1314521/article/details/106017117</link><guid>https://blog.youkuaiyun.com/LSH1314521/article/details/106017117</guid><author>LSH1314521</author><pubDate>Sat, 09 May 2020 14:04:04 +0800</pubDate><description><![CDATA[1.下载VS2019与QT

http://download.qt.io/archive/qt/5.9/5.9.0/


2.VS上安装插件
菜单栏：拓展-&gt;管理拓展

关闭vs，进入自动安装

安装好后打开vs，拓展出现Qt VS Tools

3.安装QT

4.VS设置QT


输入QT安装目录里头的msvc

...]]></description><category></category></item><item><title><![CDATA[【笔记】数据结构_线性表-单链表]]></title><link>https://blog.youkuaiyun.com/LSH1314521/article/details/105770026</link><guid>https://blog.youkuaiyun.com/LSH1314521/article/details/105770026</guid><author>LSH1314521</author><pubDate>Wed, 29 Apr 2020 16:38:01 +0800</pubDate><description><![CDATA[1.单链表结构
节点结构：

节点之间结构：

C语言结构：
typedef struct Link{
	int elem;//数据域
	sturct Link* next;//指针，指向的是节点结构，即struct Link*
}link;

链表结构：
头指针：普通指针，在有头节点时指向头节点，无头节点时指向首元节点。
头节点：节点结构，无数据。
首元节点：第一个有数据的节点。

2.单链表初...]]></description><category></category></item><item><title><![CDATA[【笔记】数据结构_线性表-顺序表]]></title><link>https://blog.youkuaiyun.com/LSH1314521/article/details/105766345</link><guid>https://blog.youkuaiyun.com/LSH1314521/article/details/105766345</guid><author>LSH1314521</author><pubDate>Sun, 26 Apr 2020 15:26:53 +0800</pubDate><description><![CDATA[1.顺序表与链表

左侧为顺序表，右侧为链表，区别在于有无在内存中顺序存放数据。
2.顺序表初始化
顺序表结构：
typedef struct Table{
	int* head;
	int length;
	int size;
}table;

顺序表初始化：
table initTable(){
	Table t;
	t.head = (int*)malloc(5*sizeof(int));
...]]></description><category></category></item><item><title><![CDATA[【笔记】数据结构_时间、空间复杂度]]></title><link>https://blog.youkuaiyun.com/LSH1314521/article/details/105681498</link><guid>https://blog.youkuaiyun.com/LSH1314521/article/details/105681498</guid><author>LSH1314521</author><pubDate>Thu, 23 Apr 2020 20:07:47 +0800</pubDate><description><![CDATA[1.程序追求的3点
1）准确性：解决问题
2）健壮性：在任何情况下不会奔溃
3）运行效率：时间复杂度、空间复杂度
2.时间复杂度表示

O(频度)

即O括号中，是代码运行了多少次
for(int i=0;i&lt;n;i++){
	int a =b+c;
}

运行n次，即O(n)
常见的时间复杂度排序：

O(1)常数阶 &lt; O(logn)对数阶 &lt; O(n)线性阶 &lt; O(...]]></description><category></category></item><item><title><![CDATA[【笔记】C_内存分页机制]]></title><link>https://blog.youkuaiyun.com/LSH1314521/article/details/105696053</link><guid>https://blog.youkuaiyun.com/LSH1314521/article/details/105696053</guid><author>LSH1314521</author><pubDate>Wed, 22 Apr 2020 23:44:07 +0800</pubDate><description><![CDATA[学习资料来自于http://c.biancheng.net/

1.虚拟内存对应物理地址
虚拟地址与物理地址一一对应。

将地址以212=4K大小分页，即加入4GB的虚拟内存=220 *212 ，即220 页。
2.一级页表
把所有的页整合成为一个数组，即这个数组有220 个元素，每个元素对应物理地址的相应页地址，每个元素占4字节，即页表大小4MB。
那么物理地址=物理页地址+偏移值。
所以虚拟...]]></description><category></category></item><item><title><![CDATA[【笔记】数据结构_常用数据结构介绍]]></title><link>https://blog.youkuaiyun.com/LSH1314521/article/details/105677550</link><guid>https://blog.youkuaiyun.com/LSH1314521/article/details/105677550</guid><author>LSH1314521</author><pubDate>Wed, 22 Apr 2020 11:25:30 +0800</pubDate><description><![CDATA[1.顺序表

2.链表

3.特殊顺序表（栈与队列）
栈中的元素只能从线性表的一端进出（另一端封死），且要遵循“先入后出”的原则，即先进栈的元素后出栈。

队列中的元素只能从线性表的一端进，从另一端出，且要遵循“先入先出”的特点，即先进队列的元素也要先出队列。

4.树（一对多）

5.图（多对多）


...]]></description><category></category></item><item><title><![CDATA[【笔记】C_文件操作知识点补充]]></title><link>https://blog.youkuaiyun.com/LSH1314521/article/details/105494509</link><guid>https://blog.youkuaiyun.com/LSH1314521/article/details/105494509</guid><author>LSH1314521</author><pubDate>Wed, 15 Apr 2020 16:47:48 +0800</pubDate><description><![CDATA[1.利用fread与fwrite进行文件拷贝
fread(缓存，单块大小，块数，文件指针）
fwrite(缓存，单块大小，块数，文件指针）
两个函数返回都是块数，
如何进行文件拷贝：
1）需要缓存区来暂存拷贝的数据。
2）需要判断拷贝何时停止
#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
#pragma warning(disable:499...]]></description><category></category></item><item><title><![CDATA[【笔记】C_文件操作]]></title><link>https://blog.youkuaiyun.com/LSH1314521/article/details/105389428</link><guid>https://blog.youkuaiyun.com/LSH1314521/article/details/105389428</guid><author>LSH1314521</author><pubDate>Wed, 08 Apr 2020 19:03:00 +0800</pubDate><description><![CDATA[1.fopen与fclose

FILE *fopen(char *filename, char *mode);

fopen的函数如上，第一个参数文件名（路径），第二个参数为打开方式。
打开方式包括打开权限：r,w,a,r+,w+,a+六种，与读写方式t,b两种。
r：读，若不存在该文件，fopen返回NULL。
w：写，若不存在则新建，若存在删除新建。
a：追加，若不存在则新建，若存在写入内容...]]></description><category></category></item><item><title><![CDATA[【笔记】C_const与指针]]></title><link>https://blog.youkuaiyun.com/LSH1314521/article/details/105367545</link><guid>https://blog.youkuaiyun.com/LSH1314521/article/details/105367545</guid><author>LSH1314521</author><pubDate>Tue, 07 Apr 2020 17:08:47 +0800</pubDate><description><![CDATA[1.const指针的三种表示方式
const int* p1;
int const* p2;
int* const p3;

在最后一种情况下，指针是只读的，也就是 p3 本身的值不能被修改；在前面两种情况下，指针所指向的数据是只读的，也就是 p1、p2 本身的值可以修改（指向不同的数据），但它们指向的数据不能被修改。(资料上）
初学const，感觉资料上的有些不太理解，自己编写之后，以下是我的理...]]></description><category></category></item><item><title><![CDATA[【笔记】C_函数指针与表达式复杂的指针理解]]></title><link>https://blog.youkuaiyun.com/LSH1314521/article/details/105198637</link><guid>https://blog.youkuaiyun.com/LSH1314521/article/details/105198637</guid><author>LSH1314521</author><pubDate>Tue, 31 Mar 2020 08:54:09 +0800</pubDate><description><![CDATA[1.函数指针
int (*vptr)(int,int) = max;

格式是这样的，表示vptr这个指针指向 int max(int,int);的函数。
int max(int a,int b){
	return a&gt;b? a:b;
}

int main(){
	int (*pMax)(int,int) = max;
	int a = 3,b =6;
	int result = pMax...]]></description><category></category></item><item><title><![CDATA[【笔记】C_数组类型与指针类型的区别]]></title><link>https://blog.youkuaiyun.com/LSH1314521/article/details/105193957</link><guid>https://blog.youkuaiyun.com/LSH1314521/article/details/105193957</guid><author>LSH1314521</author><pubDate>Mon, 30 Mar 2020 12:57:31 +0800</pubDate><description><![CDATA[1.数组类型与指针类型
int a[6] = {1,2,3,4,5,6};
int* p = a;
int lenA = sizeof(a)/sizeof(int);
int lenP = sizeof(p)/sizeof(int);
printf("lenA=%d,lenP=%d.\n",lenA,lenP);

lenA=6;lenP=1;
因为两种类型是不同的，虽然在他们都是指向a数据的a[...]]></description><category></category></item><item><title><![CDATA[【笔记】C_指针的一些理解]]></title><link>https://blog.youkuaiyun.com/LSH1314521/article/details/105192486</link><guid>https://blog.youkuaiyun.com/LSH1314521/article/details/105192486</guid><author>LSH1314521</author><pubDate>Mon, 30 Mar 2020 10:43:37 +0800</pubDate><description><![CDATA[1.什么是指针
初学指针，我习惯把指针比作一个标识指向某个数据，但是在后两天的学习中，我发现这种对指针的理解方式严重阻碍我后面的学习。
于是我把他理解成一个变量，数据类型为地址。
int a = 100;
int* p1 = &amp;a;

资料上习惯使用的格式是:
int *p1 = &amp;a;

查找了一些资料，发现两种书写格式都是正确的。但我偏向前者。
int* p1实际是定义了p1这...]]></description><category></category></item><item><title><![CDATA[【笔记】C_指针与字符数组]]></title><link>https://blog.youkuaiyun.com/LSH1314521/article/details/105132477</link><guid>https://blog.youkuaiyun.com/LSH1314521/article/details/105132477</guid><author>LSH1314521</author><pubDate>Fri, 27 Mar 2020 00:47:57 +0800</pubDate><description><![CDATA[1.字符数组与字符常量
字符数组：拥有读写功能
char str[] = "hello";
str[1] = 'p'; //str=hpllo
*(str+1) = 'c'; //str = hcllo

字符常量：只有读功能，不能进行写入
char* str = "hello";  //资料是这么写的，但是在vs上并不合法，应该加const
str = "reviii"; //正确 
*(str...]]></description><category></category></item><item><title><![CDATA[【笔记】C_中间递归（字符串转换）]]></title><link>https://blog.youkuaiyun.com/LSH1314521/article/details/105105497</link><guid>https://blog.youkuaiyun.com/LSH1314521/article/details/105105497</guid><author>LSH1314521</author><pubDate>Wed, 25 Mar 2020 21:50:36 +0800</pubDate><description><![CDATA[1.字符串转换流程图

2.代码实现
#include &lt;stdio.h&gt;
#include &lt;string.h&gt;
#pragma warning(disable:4996)

void reverse(char* str);

int main(){
	char str[]="hello";
	reverse(str);
	puts(str);
	return 0;
}
...]]></description><category></category></item><item><title><![CDATA[【笔记】C_数组排序（归并排序）]]></title><link>https://blog.youkuaiyun.com/LSH1314521/article/details/105036907</link><guid>https://blog.youkuaiyun.com/LSH1314521/article/details/105036907</guid><author>LSH1314521</author><pubDate>Sun, 22 Mar 2020 22:43:04 +0800</pubDate><description><![CDATA[1.归并排序

归并排序也称合并排序，其算法思想是将待排序序列分为两部分，依次对分得的两个部分再次使用归并排序，之后再对其进行合并。仅从算法思想上了解归并排序会觉得很抽象，接下来就以对序列A[0], A[l]…, A[n-1]进行升序排列来进行讲解，在此采用自顶向下的实现方法，操作步骤如下。
(1)将所要进行的排序序列分为左右两个部分，如果要进行排序的序列的起始元素下标为first，最后一个元素的...]]></description><category></category></item><item><title><![CDATA[【笔记】C_数组排序（选择排序和插入排序)]]></title><link>https://blog.youkuaiyun.com/LSH1314521/article/details/104993627</link><guid>https://blog.youkuaiyun.com/LSH1314521/article/details/104993627</guid><author>LSH1314521</author><pubDate>Fri, 20 Mar 2020 17:21:52 +0800</pubDate><description><![CDATA[1.不稳定的排序-选择排序

选择排序概念：将第0小的数移动到arr[0]，将第1小的数移动到arr[1]，一次类推通过循环完成排序。

因为可能会移动相同数据的位置，称之为不稳定。

代码理解：
假设一个arr1[5]={4,2,1,3,5};，需要将最小的数值先移动到arr1[0]的位置。需要定义一个min值来保存取得的最小值，min_index记录min值所在的下标。
第一轮比较：
假设mi...]]></description><category></category></item><item><title><![CDATA[【笔记】C_数组排序（冒泡排序与快速排序）]]></title><link>https://blog.youkuaiyun.com/LSH1314521/article/details/104979526</link><guid>https://blog.youkuaiyun.com/LSH1314521/article/details/104979526</guid><author>LSH1314521</author><pubDate>Fri, 20 Mar 2020 01:00:32 +0800</pubDate><description><![CDATA[C语言中文网学习笔记

1.冒泡排序
以从小到大排序为例，冒泡排序的整体思想是这样的：

从数组头部开始，不断比较相邻的两个元素的大小，让较大的元素逐渐往后移动（交换两个元素的值），直到数组的末尾。经过第一轮的比较，就可以找到最大的元素，并将它移动到最后一个位置。
第一轮结束后，继续第二轮。仍然从数组头部开始比较，让较大的元素逐渐往后移动，直到数组的倒数第二个元素为止。经过第二轮的比较，就可以找...]]></description><category></category></item><item><title><![CDATA[【笔记】C_静态数组]]></title><link>https://blog.youkuaiyun.com/LSH1314521/article/details/104978400</link><guid>https://blog.youkuaiyun.com/LSH1314521/article/details/104978400</guid><author>LSH1314521</author><pubDate>Thu, 19 Mar 2020 23:01:12 +0800</pubDate><description><![CDATA[1.C语言中的数组静态数组
C语言中的数组不能改变长度，从出生起便固定了长度，数组数据在内存中是连续存放的。
2.数组的插入与删除
插入：因为数组是静态数组，所以插入相当于拷贝到新的数组中，将插入点的数据向后移动，插入数据。
如果在arr[5]={1,2,3,4,5}的2与3位置插入一个数字，代码如下：
#include &lt;stdio.h&gt;

#pragma warning(disab...]]></description><category></category></item><item><title><![CDATA[【笔记】C_字符串输入输出以及string.h的基本用法]]></title><link>https://blog.youkuaiyun.com/LSH1314521/article/details/104965405</link><guid>https://blog.youkuaiyun.com/LSH1314521/article/details/104965405</guid><author>LSH1314521</author><pubDate>Thu, 19 Mar 2020 13:24:47 +0800</pubDate><description><![CDATA[1.字符串长度问题。
字符串在内存中存储是以‘\0’结尾。
假设代码如下：
#include &lt;stdio.h&gt;
pragma warning(disable:4996)

int main(){
	char str1[5]="hello";//hello为5个字符
	...
	return 0;
}

程序报错，E0144:"const char[6]"类型的值不能用于初始化char...]]></description><category></category></item><item><title><![CDATA[【笔记】C_scanf的一些高级用法以及非阻塞输入]]></title><link>https://blog.youkuaiyun.com/LSH1314521/article/details/104956935</link><guid>https://blog.youkuaiyun.com/LSH1314521/article/details/104956935</guid><author>LSH1314521</author><pubDate>Thu, 19 Mar 2020 00:11:59 +0800</pubDate><description><![CDATA[1.scanf指定长度输入
#include &lt;stdio.h&gt;

int main(){
	int a;
	float b;
	char str[30];
	scanf("%2d",&amp;a);
	scanf("%*[^\n]");scanf("%*c");
	scanf("%6f",&amp;b);
	scanf("%*[^\n]");scanf("%*c");
	scanf(...]]></description><category></category></item></channel></rss>