自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 资源 (1)
  • 收藏
  • 关注

原创 网络通信 UDP 简单c_s 通讯

server端:#include<stdio.h>#include<unistd.h>#include<sys/types.h>#include<sys/socket.h>#include<netinet/in.h>#include<string.h> #include <arpa/inet.h>t...

2019-09-16 18:39:22 191

原创 网络通信 TCP 简单c_s 通讯

server端:#include <stdio.h>#include <unistd.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include <string.h>int main(){ printf("服务...

2019-09-16 18:32:49 174

原创 String类的四个默认成员函数————C++的有参、拷贝、赋值、析构实现String

#include<iostream>#include<string.h>using namespace std;class A{ char* c_str;//用于保存字符串public: //无参构造 A(void) { c_str = new char[1]; c_str[0]='\0'; } //有参构造 A(const char*...

2019-08-24 09:56:28 228

原创 C++ 拷贝构造与赋值构造

拷贝结构 dome4.cpp拷贝构造又称为复制构造,是一种特殊的构造函数,它是使用一个现有的对象来构造一个新的对象,只有一个引用型的参数(对象本身)。类名(类& ){}拷贝构造的参数应该加const保护,但编译器并没有强制限制。编译器会自动生成一个拷贝构造函数,负责把旧对象中的所有数据拷贝给新对象。深拷贝与浅拷贝 如果类成员中有指针,浅拷贝只拷贝指针变量的值,深拷贝是指...

2019-08-16 20:21:58 1189 1

原创 C++ this 指针与常函数

一、this指针类的成员变量单独存储在每个类对象中,成员函数存储在代码段中,所有的类对象共享一份成员函数。成员函数是如何区别调用它的是哪个类对象的?答:借助了this指针,类的每个成员函数都有一个隐藏的参数this指针,它指向类对象类的构造函数中也同样有this指针,指向的就是正在的构造的这个对象。在类中(成员函数、构造、析构)对成员变量,成员函数的访问都是借助了this指针。thi...

2019-08-16 20:11:41 249

原创 C++ 类、对象、构造函数、初始化列表

面向过程编程: 关注是问题解决的过程步骤(事情是如何解决的),算法。面向对象编程:关注的是谁能解决问题(类),需要什么样的数据(成员变量),具备什么样的技能(成员函数)才能解决问题。抽象: 找出一个能够解决问题的"对象"(观察研究对象),找出解决所必须的数据(属性)、功能(成员函数)。封装: 把抽象的结构,归结为一个类(数据类型),然后实例化出类对象,设置对象的属性,调用对...

2019-08-16 19:57:45 332

原创 C++的简单介绍 以及与C语言的不同

一、C++介绍本加尼·斯特劳斯特卢普,与1979年4月份贝尔实验室的本贾尼博士在分析UNIX系统分部内核流量分析时,希望有一种有效的模块化的工具。1979年十月完成了预处理器Cpre,为C增加了类机制,也就是面向对象,1983年完成了C++的第一个版本,C with classes也就是C++。C++与C的不同点:1. C++完全兼容C的所有内容2. 支持面向对象编程思想3. ...

2019-08-16 19:48:38 193

原创 标准C语言---------对文件的操作

文件分类:文本文件:记录的是字符串的二进制二进制文件:直接把数据补码记录到文件中磁盘只能存储二进制数据。文件文件中存储的是ASCII码的二进制,先把数据转换成字符中,再写入到文件中,可以直接被文本编辑器打开。二进制文件中存储的数据的二进制,直接把数据的二进制存储到文件中,无法直接通过文件编辑器查看。文件I/O函数:FILE *fopen(const char *path,...

2019-08-14 20:32:51 233

原创 Makefile脚本以及简单的GDB调试

Makefile脚本把用于编译的命令记录到文件中。当多个文件程序时,编译会变得异常麻烦,而Makefile文件中可以把编译指令记录下来,当执行make命令时会自动把Makefile中的编译指令进行执行。使用make进行编译时会根据文件的修改时间来确定,.c文件是否需要再次编译,如果不是新修改的文件不需要重复编译。注意:必须使用tab键缩进,否则会产生 *** 遗漏分隔符 。Ma...

2019-08-14 20:27:48 373

原创 C语言 结构体基础知识

什么是结构:是一种程序员自己设计数据类型,由若干个不同的数据类型组成,可用于描述一个事物各项数据。1.设计结构(设计数据类型):// 仅仅是一种数据类型typedef struct 结构名{ 类型1 成员名1; 类型2 成员名2; 类型3 成员名3; ...}结构名;typedef struct Student{ char name[20]; char sex; s...

2019-08-14 20:25:41 263

原创 C语言 关于头文件的知识

预处理指令:在C语言中以#开头的语句都叫做预处理指令,因为这些不是标准的C代码,不能被编译器直接编译,需要一段程序把它翻译成标准的C代码,负责翻译在程序叫预处理器,翻译的过程叫预处理。gcc -E code.c 把预处理的结果显示在终端上。gcc -E code.c -o code.i 把预处理的结果存储到文件中。 -o 为执行结果重命名1、文件包含 #include<&...

2019-08-14 20:20:00 458

原创 C语言 字符串相关的简单知识

什么是字符串由于字符组成的串型数据结构,以'\0'作为结束标志。字符串为什么重要: 我们看到的都是字符型数据,而计算机只能针对数值型数据进行运算,因此我们需要非常频繁的把数据转换成字符串,字符串转换成数据。字符串存在的形式:1.字符数组: char arr[5] = {'h','e','l','l','o'}; // error char arr[6] = {'h','e','l...

2019-08-14 20:16:59 324

原创 C语言 指针的基本知识

内存的单位:bit 一个bit位能存储1个二进制 内存的最小单位。1byte = 8bit,一次性使用的最小单位,操作系统会为每个字节分配一个编号(天然按位置排列)。1kb = 1024byte1mb = 1024kb1gb = 1024mb1tb = 1024gb1pt = 1024tb什么是指针:指针变量的取值范围取值0~4G指针是一种数据类型(无符号整数,代表了内存编号)...

2019-08-14 20:13:49 330

原创 程序在内存中的分布以及修饰变量的关键字

程序在内存中的分布情况:一个程序运行后在内存中会划分成不同的内存段,与编程相关有:代码段 text:二进制指令(if/for/函数),具有const属性且被初始化过的全局静态变量、字符串字面值,只读权限(不能修改)只读段:用来存储常量,一旦被修改就会产生段错误。全局数据段 data:存储被初始化过的全局变量。静态数据段 bss:存储没有被初始化过的全局变量和静态变量,程序运行后这段内存...

2019-08-14 20:10:26 145

原创 C语言 函数的简介

函数:函数是C语言中管理代码的最小单位,命名空间独立,栈空间独立。函数被调用时开辟栈内存,函数结束后释放栈内存。声明:返回值 函数名(类型1,类型2,…);定义:返回值 函数名(类型1 参数名1,类型2 参数名2,…){函数体}注意:函数的定义如果出现调用之前,声明可以忽略。调用函数时如果没有找到函数声明,也没有定义,编译器也不报错,而是先猜测函数的格式,链接时再尝试寻找函数的定义...

2019-08-14 20:08:08 320

原创 C语言 有关数组的知识

数组:什么是数组:数组就相同类型变量的组合,它是一种指定义变量的方法。一维数组:把变量排成一排。定义:类型 数组名[数量]:int arr[5]; // 数字表示的是变量的数量int num1,num2,num3,num4,num5;注意:数组定义后,默认值不确定。使用:数组名+编号(下标)arr[0],arr[1],arr[2],arr[3],arr[4] // 数字表示编号注...

2019-08-14 19:45:06 189

原创 C语言基本介绍

C语言简介:时间:1970~1973 作者:丹尼斯.里奇 肯.汤普逊 地点:贝尔实验室目的:编写操作系统 UNIX->Linux BCPL->newB->C特点:速度快,语法简洁(32个关键字),功能强大(对硬件支持)。缺点:可用的库少,由于语法简洁导致代码不易阅读。第一C程序:程序员所编写代码不是标准C代码,不能直接编译,它一段把它翻译成标准的C代码,负责翻译的程序...

2019-08-14 19:40:53 784

原创 Unix环境下C语言 server_client_tcp_文件传输

实现 server_client_tcp_文件传输的五个基本功能:list cd mkdir put(上传) get(下载)server(服务端)#include<stdio.h>#include<stdlib.h>#include<string.h> #include<sys/socket.h>#include<neti...

2019-08-13 20:41:53 275

原创 C语言 堆排序

#include <stdio.h>#include <stdlib.h>#include <stdbool.h>#define swap(a,b) {typeof(a) t=a; a=b; b=t;} //定义一个swap用于交换,便于使用/*堆排序: 首先把数据构当作完全二叉树,然后保证根点最大,然后把根结点与最后一个元素交换, 然后再调整...

2019-07-27 13:33:52 132

原创 C语言 二分查找

#include <stdio.h>#include <stdlib.h>#include <stdbool.h>/*二分查找:前提就是数据必须有序,然后从数据的中间位置开始查起,如果中间值比key小,则从中间值位置开始继续查找,反之刚从开头到中位置查找,重复以上过程直到结束。从代码实现上来说,既可以用循环实现,也可以用递归实现。*/int _...

2019-07-27 13:33:10 99

原创 C语言 归并排序

#include <stdio.h>#include <stdlib.h>/*归并排序: 不交换数据,但需要借助额外的空间,用作临时的存储空间。*/void merge(int* arr,size_t left,size_t pi,size_t right){ int i=left,j=pi+1,k=0; // 内部合并 int temp[righ...

2019-07-27 13:31:58 190

原创 C语言 快速排序

#include <stdio.h>#include <stdlib.h>void _quick_sort(int* arr,size_t left,size_t right){ if(left >= right) return; // 计算标杆的下标 int pi = (left+right)/2; // 备份标杆的值 int pv = arr[...

2019-07-27 13:31:01 218

原创 C语言下的顺序查找

#include <stdio.h>#include <stdlib.h>//顺序查找:从头到尾逐一比较,对于要查找的数据没有要求,但方法简单,在小规模的数据查找中比较常用,但效率低。int order_find(int* arr,size_t len,int key) //要查找的数组 数组长度 要查找的数{ for(int i=0; i<len;...

2019-07-27 13:29:57 256

原创 C语言下的 选择排序

#include <stdio.h>#include <stdlib.h>#define swap(a,b) {typeof(a) t=a; a=b; b=t;}//定义一个swap用于交换,便于使用/* 选择排序:是冒泡排序的一种变种,但是它没有冒泡对数据有序性的敏感但它在排序过程中比较冒泡要少了很多数据交换,因此数据比较混乱的情况下要比冒泡要比快。*...

2019-07-27 13:29:02 150

原创 标准IO与系统IO比较

分别使用标准IO与系统IO随机写入1000000个整数到文件,比较哪种更快,为什么?#include <stdio.h>#include <stdlib.h>int main(){ FILE* fwp = fopen("std.bin","w"); for(int i=0; i<1000000; i++) { int num = rand() % ...

2019-07-27 13:27:03 235

原创 C语言 冒泡排序

#include <stdio.h>#include <stdlib.h>#define swap(a,b) {typeof(a) t=a; a=b; b=t;} //定义一个swap用于交换,便于使用/*冒泡排序:是一种稳定排序,在排序过程中可以监测到数据是否已经有序(对数据的有序性敏感),可以立即停止,如果待排序的数据基本有序,则冒泡的效率是非常高的。...

2019-07-27 11:41:40 131

原创 C语言 插入排序

#include <stdio.h>// 插入排序:当一列已经有序,再有加入的数据时,适合使用插入排序,它是一种简单直观且稳定的算法(不需要交换)void insert_sort(int* arr,size_t len){ for(int i=1; i<len; i++) { int t = arr[i] , k = i; for(int j=i-1...

2019-07-27 11:38:36 204

原创 2048 (C语言)

#include <stdio.h>#include <stdlib.h>#include <stdbool.h>#include <time.h>#include <getch.h>// 创建二维数组int arr[4][4];// 是否移动或合并过bool IS_MOVE_MERGE = true;// 显示界面...

2019-07-23 10:26:30 721

原创 C语言 建立简单的链表栈

#include<stdio.h>#include<stdlib.h>#include<stdbool.h>#define TYPE inttypedef struct Node{ TYPE data; struct Node* next;}Node;Node* creat_node(TYPE data){ Node* node = ...

2019-07-23 10:18:55 130

原创 C语言 建立简单的栈

#include<stdio.h>#include<stdbool.h>#include<stdlib.h>#define TYPE int typedef struct Stack{ TYPE* arr; //内存首地址 int len; //栈的容量 int top; //栈的下标}Stack;//判断是否为出栈序列bool i...

2019-07-23 10:17:19 2378

原创 C语言 建立简单的链表队列

#include<stdio.h>#include<stdlib.h>#include<stdbool.h>#define TYPE inttypedef struct Node{ TYPE data; struct Node* next;}Node;Node* creat_node(TYPE data){ Node* node =...

2019-07-23 10:14:56 172

原创 C语言 建立简单的顺序表队列

#include<stdio.h>#include<stdlib.h>#include<stdbool.h>#define TYPE inttypedef struct Queue{ TYPE* base; int size; //容量 int head; //队头 int tall; //队尾 int cnt; //数量}Queue...

2019-07-23 10:11:51 174

原创 C语言 建立简单顺序表

#include<stdio.h>#include<stdbool.h>#include<stdlib.h>#define TYPE int //设计数据结构typedef struct Array{ TYPE* base; //数组首地址 size_t size;//元素的个数}Array;//创建Array* create_arra...

2019-07-23 10:09:25 1422

原创 C语言 建立双向链表

#include <stdio.h>#include <stdlib.h>#include <stdbool.h>#define TYPE inttypedef struct Node{ struct Node* prev; // 前一个元素 TYPE data; // 数据 struct Node* next; // 后一个元素}No...

2019-07-23 10:05:14 489

原创 链表逆序的实现(修改指针)

用C语言,建立一个普通的链表后通过修改指针,将链表的头尾颠倒(逆序)#include<stdio.h>#include<stdbool.h>#include<stdlib.h>#define TYPE int typedef struct Node { TYPE data; struct Node* next;}Node;Node* c...

2019-07-14 10:40:42 313

Qt_TCP.zip

TCP C/s文件传输 (Qt) #include <QtGui/QApplication> #include "widget.h" int main(int argc, char *argv[]) { QApplication a(argc, argv); Widget w; w.show(); return a.exec&#40;&#41;; }

2019-10-29

空空如也

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

TA关注的人

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