- 博客(35)
- 收藏
- 关注
原创 Linux简单命令的使用
1.linux上怎么快速删除一个目录在linux中删除一个目录很简单,很多人还是习惯用rmdir,不过一旦目录非空,就陷入深深的苦恼之中,现在使用rm -rf命令即可解决。直接rm就可以了,不过要加两个参数-rf即:rm -rf 目录名字-r 就是向下递归,不管有多少级目录,一并删除-f 就是直接强行删除,不作任何提示的意思删除文件夹实例:rm -rf /var/log/httpd/acc...
2019-12-04 17:27:11
154
原创 线程间的同步和互斥
并发:多个任务在同一个 CPU 核上按细分的时间片轮流(交替)执行,从逻辑上来看那些任务是同时执行。针对 CPU 内核来说,任务仍然是按细粒度的串行执行。并行:一般指并行计算,是说同一时刻有多条指令同时被执行,这些指令可能执行于同一CPU的多核上,或者多个CPU上,或者多个物理主机甚至多个网络中.同步:进程之间的关系不是相互排斥临界资源的关系,而是相互依赖的关系。进一步的说明:就是...
2019-10-22 17:59:12
248
原创 进程间通信
IPC(进程间通信)Linux下的多个进程间的通信机制叫做IPC,它是多个进程之间进行互相沟通的一种方法通过进程间通信实现不同进程之间传播和交换信息进程间通信(IPC)的目的总结1:数据传输2:资源共享3:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件4:进程控制进程间通信的方式在Linux下有多个进程间通信的方法:半双工管道、FIFO(命名管道)、消息队列...
2019-10-15 16:50:06
220
原创 Linux中的信号
信号(signal)的引入程序在执行的时候,几乎任何时刻都会反生事件。信号通常用来向一个进程通知事件。信号是不可提前预知的,所以信号是异步的。信号随时都可能发生,接收信号的进程也可以没有控制权。每个信号名都以SIG开头,信号名的定义在<signal.h>中。信号名一般都是宏,内部通常是一个正整数。信号信号(signal)是一种软件中断,它提供了一种处理异步事件的方法,也...
2019-10-14 17:34:57
316
原创 僵尸进程和守护进程
僵尸进程和守护进程僵尸进程:一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用wait或waitpid获取子进程的状态信息,那么子进程的进程描述符仍然保存在系统中。这种进程称之为僵死进程。子进程是通过父进程创建的,子进程在创建新的进程。子进程的结束和父进程的运行是一个异步过程,即父进程永远无法预测子进程 到底什么时候结束。 当一个进程完成它的工作终止之后,它的父进程需要调用w...
2019-10-12 18:02:32
330
原创 进程替换
进程替换fork生成的子进程和父进程的功能一样,如果想让fork生成的子进程的功能不一样,即拥有与父进程不一样的代码段数据段以及堆栈段,应该怎么办呢使用exec函数系列fork函数是用于创建一个子进程,该子进程几乎是父进程的副本,而有时我们希望子进程去执行另外的程序,exec函数族就提供了一个在进程中启动另一个程序执行的方法所需头文件: #include <unistd.h>...
2019-10-12 15:47:19
141
转载 贪心算法(Greedy Algorithms)
1.贪心法的设计思想贪心算法在解决问题的策略上目光短浅,只根据当前已有的信息就做出选择,而且一旦做出了选择,不管将来有什么结果,这个选择都不会改变。换言之,贪心法并不是从整体最优考虑,它所做出的选择只是在某种意义上的局部最优。贪心算法对于大部分的优化问题都能产生最优解,但不能总获得整体最优解,通常可以获得近似最优解。该算法存在问题:1). 不能保证求得的最后解是最佳的;2). 不能用来求最...
2019-09-27 18:33:13
411
原创 VI/VIM编辑器
vi/vim文本编辑器vi是linux系统中一款著名的编辑软件Vim基于vi发展而来,功能更强大是基于命令交互的方式启动vi/vimvi 文件名vim 文件名例:vi 1.txt通过打开多个vi -oN 2.txt 3.txt //竖向两个窗口编辑vi -ON 2.txt 3.txt //水平两个窗口编辑常用的三种模式命令模式默认的模式"控制屏幕光标的移动、...
2019-09-26 18:10:46
257
原创 Linux软连接和硬链接的区别
ln是linux中又一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接.当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。1.命令格式:ln [参数][源文件或目录][目标文件或目录]2.命令功能:Linu...
2019-09-24 22:42:41
270
转载 细胞分裂模拟(C++)
一种细胞在诞生(即上次分裂)后会在 500 ~ 2000 秒内分裂为两个细胞,每个细胞又按照同样的规律继续分裂。下面的程序模拟了细胞分裂的过程,会输出每个细胞的分裂时间。代码如下:#include #include #include #include #include #include using namespace std;const int SPLIT_TIME_MIN = 5...
2019-09-09 19:04:58
1215
转载 重载(overload)和重写(overried,有的书也叫做“覆盖”)的区别
常考的题目。从定义上来说:重载:是指允许存在多个同名函数,而这些函数的参数表不同(或许参数个数不同,或许参数类型不同,或许两者都不同)。重写:是指子类重新定义复类虚函数的方法。从实现原理上来说:重载:编译器根据函数不同的参数表,对同名函数的名称做修饰,然后这些同名函数就成了不同的函数(至少对于编译器来说是这样的)。如,有两个同名函数:function func(p:integer):int...
2019-09-05 17:29:09
190
转载 C++中类成员函数的重载、覆盖和隐藏的区别
1.成员函数被重载的特征:(1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数不同;(4)virtual 关键字可有可无。2.覆盖是指派生类函数覆盖基类函数,特征是:(1)不同的范围(分别位于派生类与基类);(2)函数名字相同;(3)参数相同;(4)基类函数必须有virtual 关键字。3.“隐藏”是指派生类的函数屏蔽了与其同名的基类函数,规则如下:(1)如果派...
2019-09-05 17:20:11
285
转载 C++实现多态的原理
C++的多态是面向对象编程的核心,那么C++的多态是怎么来实现的?今天我们就来探讨一下。我们先来看下面程序和它的运行结果#include using namespace std;class Father{public:void fun(){cout << “I am father!” << endl;}};class Son:public Fathe...
2019-09-04 18:59:27
148
转载 static_cast、dynamic_cast、const_cast和reinterpret_cast总结
前言这篇文章总结的是C++中的类型转换,这些小的知识点,有的时候,自己不是很注意,但是在实际开发中确实经常使用的。俗话说的好,不懂自己写的代码的程序员,不是好的程序员;如果一个程序员对于自己写的代码都不懂,只是知道一昧的的去使用,终有一天,你会迷失你自己的。C++中的类型转换分为两种:隐式类型转换;显式类型转换。而对于隐式变换,就是标准的转换,在很多时候,不经意间就发生了,比如int类型...
2019-09-01 16:24:38
124
原创 const int *p1 和 int * const p2的区别:
(1) 可以声明指向常量的指针,此时不能通过指针来改变所指向对象的值,但指针本身可以改变,可以指向另外的对象。例如:int a;const int *p1=&a; //p1是可以指向常量的指针int b;p1=&b; //正确,p1本身的值可以改变*p=1; //编译时出错,不能通过p1改变所指的对象使用指向常量的指针,可以确保指针所指向的常量不被意外更...
2019-08-29 17:53:45
2561
转载 简述const的作用,const与#define相比,有何优点?const与#define的区别?
const是一个C语言的关键字,限定一个变量不允许被改变,产生静态作用。在一定程度上可以提高程序的安全性和可靠性。const修饰的类型是常类型,常类型的变量或对象的值是不能被更新的。一. 主要作用:(1)定义const常量,常量不可变。例如const int i = 100;任何对i的变值操作都会报错,如i++报错。(2)便于进行类型检查,使编译器对处理内容有更多的了解,消除一些隐患。比如定...
2019-08-27 14:57:08
817
原创 定义一个复数类Complex,使得下面的代码能够工作 Complex c1(3,5); //用复数3+5i初始化c1 Complex c2=4.5; //用实数4.5初始化c2 c1.add(c2)
class Complex{private:float Real_part;float Imaginary_part;public:Complex(float real_part=0, float imaginary_part=0){Real_part = real_part;Imaginary_part = imaginary_part;}void add(Complex ...
2019-08-24 16:43:28
3280
转载 new/delete与malloc/free的区别与联系详解!
1.malloc/free为C的标准库函数,函数原型为:void* malloc(size_t size)//参数代表字节个数void free(void* pointer)//参数代表内存地址new、delete则为C++的操作运算符,它调用的分别为赋值运算符重载operator new()和operator delete();2.在使用上,malloc/free如下:void fun...
2019-08-23 16:26:04
236
转载 总结const的用法
const的用法:(1)定义常量(2)修饰函数的参数(3)修饰函数的返回值(4)修饰函数的定义体用const 修饰函数的参数(1)const 只能修饰输入参数如果输入参数采用“指针传递”,那么加const 修饰可以防止意外地改动该指针。例如:void StringCopy(char *strDestination, const char *strSource);(2)如果...
2019-08-19 22:25:57
165
原创 数据类型,运算符与表达式总结
一.数据类型数据类型signedunsigned字符型char 8bit=1Byte -128 – 127unsigned char 0 – 255整型short 2Byte -32768 – 32767unsigend short 0 – 65535int 4B -2147483648 – 2147483647unsigned int ...
2019-08-16 18:32:53
1172
1
原创 atof()函数
atof(),是C 语言标准库中的一个字符串处理函数,功能是把字符串转换成浮点数,所使用的头文件为<stdlib.h>。该函数名是 “ascii to floating point numbers” 的缩写。语法格式为:double atof(const char nptr)。程序举例编辑程序例:#include<stdlib.h>#include<stdio...
2019-08-13 10:17:53
646
原创 atoi函数
atoi (表示 ascii to integer)是把字符串转换成整型数的一个函数,应用在计算机程序和办公软件中。int atoi(const char *nptr) 函数会扫描参数 nptr字符串,会跳过前面的空白字符(例如空格,tab缩进)等。如果 nptr不能转换成 int 或者 nptr为空字符串,那么将返回 0 [1] 。特别注意,该函数要求被转换的字符串是按十进制数理解的。atoi...
2019-08-13 10:13:28
197
转载 strtok()函数详解!
strtok()函数详解!1.定义分解字符串为一组字符串。s为要分解的字符,delim为分隔符字符(如果传入字符串,则传入的字符串中每个字符均为分割符)。首次调用时,s指向要分解的字符串,之后再次调用要把s设成NULL。在头文件#include<string.h>中。2.原型char *strtok(char s[], const char *delim);3.说明(1)当...
2019-08-13 09:17:31
4877
原创 有n个人围成一圈,顺序排好。从第一个人开始报数(从一报到三),凡报到3的人退出圈子,问留下来的是原来第几号的那位
#include<stdio.h>const int Len = 10;void output(int* p){int i;for (i = 0; i < Len&&p[i] == 0; ++i);printf(“剩下的人是:%d\n”, p[i]);}int find(int*p, int pos, int num){int count = ...
2019-08-10 11:14:54
302
原创 链表运用的小知识
void Show(const PNODE pHead)//输出{PNODE pPos = pHead;while (pPos != NULL){ printf("%d,", pPos->value); pPos = pPos->next;}puts("\b;");}void InsertHead(PNODE * ppHead, int value)//头插{...
2019-08-08 14:45:32
81
转载 已有a,b两个链表,每个链表中的结点包括学号,成绩。要求把两个链表合并,按学号升序排列。
#include <stdio.h>#include <stdlib.h>#define LEN sizeof(struct student)#define NULL 0int n=0;struct student {int num;char name[10];struct student *next;};struct student *creat(vo...
2019-08-07 14:43:18
927
原创 定义一个结构体变量(包括年、月、日)。计算该日在本年中是第几天,注意闰年问题。
#include<stdio.h>struct count_day{int year;int month;int day;}dd = { 2019,8,6 };int main(){int i, m[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };int sum=0;for (i = 0; i < 6; i++){...
2019-08-06 15:06:19
727
转载 用指向指针的方法对n个整数排序并输出。 功能:用指向指针的方法对n个整数排序并输出。要求将排序单独写成一个函数。n和 整数在主函数中输入。最后在主函数中输出。
#include <stdio.h>#include <stdlib.h>#define MAXSIZE 100void swap(int*, int*);void sort(int**, int);int main(void){int i;int n;//整形数组int array[MAXSIZE];//指针数组int *pArray[MAXSIZ...
2019-08-05 18:53:06
1422
原创 编一程序,输入月份号,输出该月的英文月名,例如,输入"3",则输出"March",要求用指针数组处理(可能会有点问题,请各位大佬帮忙改改,谢谢)
#include<stdio.h>int main(){int month;char* Month[12] = { “January”,“February”,“March”,“April”,“May”,“June”,“July”,“August”,“September”,“October”,“November”,“December” };printf(“请输入月份:”);...
2019-08-05 16:57:40
4271
原创 有一数列,该数列的第1,2项分别为0和1,以后每个奇数编号的项是前两项和的绝对值,偶数编号的项是前两项的差的绝对值。生成的20个数存在一维数组x中,并按每行4项的形式输出
#include<stdio.h>#include<math.h>void f(int a[]);int main(){int a[20];f(a);}void f(int a[]){int i;for (i = 0; i < 20; i++){if (i >= 0&&i<=1)a[i] = i;if (i &...
2019-07-31 18:28:24
832
原创 指针细节随记:
1 .x86:32位,指针占4个字节;x64:64位,指针占8个字节。2.指针特点:a.可以有效的表达复杂的数据结构;b.动态分配内存;c.方便使用字符串;d.有效方便的使用数组;f.调用函数时能获得一个以上的结果;e.能直接处理内存单元地址等。3.指针:一种存放地址的数据类型;地址:内存中存储单元的位置编号;存储单元:大小固定,1Byte;X86 : sizeof(指针)...
2019-07-30 17:42:21
112
原创 用递归求勒让德公式
#include<stdio.h>double p(int n,double x);int main(){int n;double x,y;printf(“请输入n和x:”);scanf("%d %lf", &n ,&x);y=p(n, x);printf("%lf",y);return 0;}double p(int n,double x)...
2019-07-28 22:08:58
313
原创 输入10名学生5门课的成绩,实现以下三个功能:1.计算每个学生平均分;2.计算每门课平均分;3.找出分数最高对应的学生和课程;4.计算每个学生的平均分方差
#include<stdio.h>#include<math.h>int Course1(int ch[][5]);int Course2(int ch[][5]);int Max(int ch[][5]);void Var(int ch[][5]);int main(){int c[10][5];int i, j;printf(“请输入10个学生5门课...
2019-07-28 22:05:54
2995
1
原创 国旗代码
#include <graphics.h> // 引用图形库头文件#include <math.h>#include<conio.h>const double PI = 3.1415927;void DrawStar(int x, int y, int R, double arcbegin){POINT pt[10];double r =...
2019-07-25 15:16:39
1366
原创 数组小细节
1、定义字符数组时,数组名不能放在等号左边,如char a[], a=bcd;2、c++中不能用gets直接输入,要用gets_s保证其能安全运行 puts也是如此;3、strlen函数在遇到\0直接输出,sizeof要全部遍历完。4、strcat(str1,str2)函数, str1不能是常量。5、杨辉三角的代码为#include<stdio. h>int mai...
2019-07-24 19:11:57
184
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人