自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 常见问题分析(重点)

1、sizeof和strlen的区别?(1)sizeof() 是单目运算符; strlen() 是函数;(2)sizeof() 的参数类型多样化(数组、指针、类型、对象、函数等等);strlen() 的参数类型只能是 char * (字符指针,字符串),想要得到正确结果必须有 ‘\0’ 结束符,否则将无法得到结果,数组名作为参数传入时,实际上数组就退化成指针了。(3)sizeof() 计算类型所占内存的字节数;strlen() 计算字符串长度,见到 ‘\0’ 为止;(4)sizeof() 程

2022-04-30 22:14:41 209

原创 Linux 常用命令

目录1、显示(取消)行号1、显示(取消)行号显示所有行号如果要显示该文件的所有行号,则需要在vim的命令模式下,输入 :set nu ,则可以显示该文件的所有行号取消所有行号如果要显示该文件的所有行号,则需要在vim的命令模式下输入,在光标 停留处,退出命令模式,然后输入 :set nonu ,即可显示当前这行的号码.........

2022-04-13 22:13:15 2181

原创 C Shell 详解

csh

2022-07-14 18:45:59 11639 3

原创 putty + vnc 的使用

putty+vnc

2022-07-11 15:30:29 1475

原创 (一)硬件描述语言verilog

verilog

2022-07-05 17:53:39 3319

原创 TCP服务器/客户端架构

TCP

2022-06-22 23:44:54 226

原创 Vscode的安装

vscode

2022-06-13 21:50:18 1219

原创 (QT)编译的过程

qt 编译器

2022-06-13 10:57:10 1305

原创 Mysql 数据库

MySQL数据库

2022-06-12 00:06:41 762

原创 vm + ubuntu 的安装

安装

2022-06-09 21:48:53 118

原创 (C++)设计模式

模式

2022-06-08 17:51:24 147

原创 git 软件版本管理

软件版本管理

2022-06-06 00:50:58 470

原创 (C++)STL(标准模板库)

容器

2022-06-01 18:23:41 656

原创 (C++)输入/输出流

1、输入/输出概念c++将输入输出分为三类:标准I/O 文件IO 字符串IO//fstream 文件流,使用需要调用库函数:read(); write();等//ifstream 文件输入流, 将内容存储到文件中;相当于fstream 调用 write();//ofstream 文件输出流, 将文件内容输出,调入内存;相当于fstream 调用 read();2、标准输入流#include <iostream>using namespace std..

2022-05-31 22:51:38 3097

原创 (C++)类型转换

目录1、类型转换概念2、static_cast3、reinterpret_cast4、const_cast5、dynamic_cast1、类型转换概念C语言类型转换:1.过于粗暴任意类型之间都能进行转换,编译器很难判断其正确性2.难于定义在源码中很难查看使用强制类型转换的语句2、static_cast//用于基本类型之间的转换,但是不能用于基本类型指针之间的转换//用于有继承关系对象之间的转换和类指针之间的转换//static_cast是

2022-05-30 23:57:24 91

原创 (C++)异常处理

1、异常的概念异常处理就是处理程序中的错误,错误就是程序在运行期间发生的一些异常事件,(栈溢出,转换失败,数组下标越界等)。2、异常的语法throw:抛出异常 , 代替return语句try //检查可能发生异常的语句{...........}catch //铺获异常{...........}3、异常处理实例除0自然会产生异常#include <iostream>using namespace std;in...

2022-05-30 23:35:45 177

原创 (C++)模板

1、函数模板概念:c++提供的函数模板机制,实际上是建立一个通用函数,其函数类型和形参类型不具体指定,用一个虚拟的类型来表示,这个通用的函数称为模板函数格式:template<类型形式参数表>类型 函数名(形式参数表){代码块}#include <iostream>using namespace std;/*int add(int x,int y) //当模板函数和普通函数同时存在,优先调用普通函数{ cout<<"...

2022-05-30 21:45:11 132

原创 (C++)运算符重载

一、运算符重载的概念所谓运算符重载,就是给运算符赋予新的功能,同一个运算符具有不同的功能运算符重载的本质:函数的重载1、实现“+”号运算符的重载重载功能:使实列对象可以直接相互加减,从而使类中的成员变量相互加减#include <iostream>using namespace std;class Complex{ //friend Complex operator+(const Complex &c1,const Complex &c2);

2022-05-29 21:11:28 323

原创 (C++)多态

1、问题的引出基类的指针指向派生类对象,在访问函数(基类与派生类的同名函数)时,只能调用基类的函数。如何才能通过基类指针调用派生类函数?#include <iostream>using namespace std;class Parent{ public: void show() { cout<<"this is Parent"<<endl; }};class Chil...

2022-05-25 23:03:02 214

原创 (C++)继承与派生

目录一、继承的概念和语法1、继承2、继承的语法3、继承的权限4、继承的对象内存模型5、继承中的构造函数与析构函数6、const修饰的成员函数7、同名成员8、继承中的static关键字9、继承中的类型兼容性原则二、多继承1、多继承的概念2、多继承的语法3、多继承的二义性4、虚继承5、向上转型一、继承的概念和语法1、继承继承可以理解为从一类向另一个类获取成员变量和成员函数的过程。2、继承的语法子类(派生类)继承父类(基类

2022-05-24 22:19:16 230

原创 make工程管理器

工程管理器make————如何编写makefie文件1、什么是工程?多个源文件+其他文件(图片、头文件、脚本文件)2、工程管理器的作用编译多个源文件(自动编译);如:gcc + 所有源文件 -o 可执行文件;...

2022-05-22 22:16:12 223

原创 (C++)类与对象

一、类与对象的思想面向对象的特点:封装、继承、多态面向对象编程的特点:(1)易维护:可读性高,即使改变了需求,由于继承的存在,只需要对局部模块进行修改,维护起来非常方便,维护的成本也比较低。(2)质量高:可以重用以前项目中已经被测试过的类,使系统满足业务需求从而具有更高的质量(3)效率高:在软件开发时,根据设计的需求要对现实世界的事物进行抽象,从而产生了类(4)易扩展:由于继承、封装、多态的特性,可设计出高内聚、低耦合的系统结构,使系统更加灵活、更容易扩展,而且成本也比较低。1、

2022-05-22 15:14:00 11221

原创 (C++)面向对象语言(关键字)

一、面向对象ubuntu:安装g++编译器命令:sudo apt-get install g++1、C++发展2、为什么学C++?3、面向对象与面向过程二、C到C++过度1、作用域限定符2、命名空间3、输入/输出函数(cout/cin)三、...

2022-05-19 21:06:21 485

原创 线程池技术

一、线程池概述1、为什么要使用线程池?一个进程所支持的线程是有限的(受限);线程的创建与销毁是有一定的开销的(当线程数目多时);(内存池是解决频繁malloc产生的开销问题;对象池是解决对象频繁分配所带来的开销问题)2、线程池的核心任务队列:用来存放客户端所请求的服务(所要完成的功能函数)线程池:用于存放线程(还包含线程数量,任务队列头/尾指针,任务队列大小,互斥锁,条件变量,线程销毁标志位等)当任务队列为空时,线程池里的线程阻塞等待;任务队列不为空时,线程池里的线程处理

2022-05-18 00:13:42 506

原创 停车场进出(数据库)

三个文件:park.h park.c function.c注意:有关时间函数,time_t 是长整型, time() 函数取多少秒,通过形参返回;ctime()将time()函数返回的形参(秒数)转化为 字符串 时间输出。#include <time.h>#include <stdio.h>int main(){ time_t timep1; //time_t timep2; time(&timep1); //获取从1970至..

2022-05-04 19:55:04 1046

原创 多线程编程题

举例一:子线程循环3次,接着主线程循环6次,接着又回到子线程循环3次,接着再回到主线程又循环6次,如此循环50次,试写出代码。#include <stdio.h>#include <pthread.h>#include <stdlib.h>#include <unistd.h>int flag = 0;int count = 0;void *function(void *arg){ while (1) {...

2022-05-03 17:06:01 438

原创 线程间通信

目录一、线程理论基础1、什么是线程2、为什么有了进程,还要引入线程呢? (使用多线程到底有哪些好处?)3、线程的缺点二、多线程间通信1、多线程通信的注意事项2、创建线程的步骤3、终止线程的方式4、线程 API 使用(1)pthread_create() 函数 (创建线程)(2)pthread_exit()函数 (结束线程)(3)pthread_join()函数 (等待线程结束)三、线程同步1、互斥量(1)互斥量注意事项(2)互斥锁创建步..

2022-05-02 02:03:16 4112 2

原创 (20220429)进程间通信

一、进程间通信概述1、进程通信的目的数据传输、资源共享、通知事件、进程控制kill -l (命令用于查看 进程能识别的信号,但是大部分进程是忽略的)bxp@ubuntu:~/2022/0429$ kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 1

2022-04-30 02:34:05 1037

原创 (20220428)进程控制编程

目录一、理论基础1、进程定义2、进程与程序3、进程的生命周期4、查看进程命令5、父进程与子进程6、进程的状态7、Linux 进程8、Linux下进程地址空间9、进程ID10、进程互斥11、临界资源12、临界区13、进程同步14、进程调度15、调度算法(多种结合)16、死锁17、僵尸进程二、进程控制编程1、获取ID2、创建进程3、exec函数族4、进程等待一、理论基础1、进程定义进程是资源分配的最.

2022-04-28 21:01:45 926

原创 通讯录3.0(数据库编程)

三个文件 : address_list.h address_list.c function.caddress_list.h#ifndef _ADDRESS_LIST_H_#define _ADDRESS_LIST_H_#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <sqlite3.h>enum return_val{ CREATE_OK = 1

2022-04-26 21:39:43 1151

原创 通讯录2.0(文件存储)

三个文件 :address_list.h function.c main.c核心文件存储://读数据int readfiledata(ADDRESS *address){ int fd; int bytes_read; NODE node; ADDRESS new_node = NULL; if(CREATE_NO == create_address_list(address)) //创建通讯录 { return ..

2022-04-24 23:01:39 107

原创 通讯录1.0

三个文件: address_list.h function.c main.caddress_list.h#ifndef _ADDRESS_LIST_H_#define _ADDRESS_LIST_H_#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <string.h>#define NAME_SIZE 10#define SEX_SIZE 6#...

2022-04-24 22:52:45 193

原创 (20220219)栈的应用

计算:(4 + 2)*8 - 3#include <stdio.h>#include <stdlib.h>#define MAX 100struct operand{ int data[MAX]; int top;};struct operator_ch{ int top; char data[MAX];};typedef struct operand OPND;typedef struct operator_ch O

2022-04-17 17:36:28 69

原创 (20220223)排序的实现

概述基本概念:定义:将文件中的数据记录按关键字值的递增或递减的顺序排列起来。{R1, R2,..., Rn}→{Ri1, Ri2,..., Rin}其中关键字{k1, k2,..., kn}→有序序列{ki1, ki2,..., kin}排序方法的稳定性: 对于ki=kj的记录Ri=Rj( Ri在Rj之前),排序后: Ri仍在Rj之前,则排序方法是稳定的; Ri在Rj之后, 则排序方法是不稳定的;方法分类:内部排序:在内存中进行,适于小文件外部排序:使用...

2022-02-26 22:13:00 183

原创 (20220225)文件编程(API)

一、系统调用二、C库函数

2022-02-26 22:01:51 441

原创 (20220221)链式队列实现

#include<stdio.h>#include<stdlib.h>#include<string.h>#define SIZE 10enum ret_val{ MALLOC_OK = 100, MALLOC_NO, CREATE_OK, CREATE_NO, PUSH_OK, PUSH_NO, POP_OK, POP_NO, EMPTY_OK, EMPTY_NO,};.

2022-02-22 21:52:21 65

原创 (20220221)顺序队列

#include<stdio.h>#include<stdlib.h>#define SIZE 10enum ret_val{ MALLOC_OK = 100, MALLOC_NO, CREATE_OK, CREATE_NO, EMPTY_NO, EMPTY_OK, FULL_OK, FULL_NO, POP_OK, POP_NO, PUSH_OK, PUSH_NO,};.

2022-02-22 21:48:19 59

原创 (20220222)循环队列的实现

#include<stdio.h>#include<stdlib.h>#define SIZE 11enum ret_val{ MALLOC_OK = 100, MALLOC_NO, CREATE_OK, CREATE_NO, EMPTY_OK, EMPTY_NO, FULL_OK, FULL_NO, POP_OK, POP_NO, PUSH_OK, PUSH_NO,};.

2022-02-22 21:41:47 112

原创 (20220220)链栈

#include<stdio.h>#include<stdlib.h>#include<string.h>#define SIZE 10enum ret_val{ MALLOC_OK = 100, MALLOC_NO, CREATE_OK, CREATE_NO, TAKE_OK, TAKE_NO, EMPTY_OK, EMPTY_NO, PUSH_OK, PUSH_NO, .

2022-02-20 16:54:04 325

原创 (20220219)顺序栈的实现

#include<stdio.h>#include<stdlib.h>#define SIZE 10enum ret_val{ CREATE_OK = 100, CREATE_NO, MALLOC_OK, MALLOC_NO, EMPTY_OK, EMPTY_NO, PUSH_OK, PUSH_NO, FULL_OK, FULL_NO, POP_OK, POP_NO,};.

2022-02-19 22:01:47 506

空空如也

空空如也

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

TA关注的人

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