- 博客(34)
- 收藏
- 关注
原创 opencv笔记(1)
waitKey格式: int waitKey(int delay=0) delay-延时的时间,单位ms; waitKey函数的功能: ①等待x ms,如果在此期间有按键按下,则立即结束并返回按键的ASCII码,否则返回-1; ②如果x=0,则无限等待下去,直到有按键按下; 【注】:在imshow之后,如果没有waitKey语句则不会显示图像。 waitKey函数的窗口机制: waitKey的延时...
2019-11-13 18:55:00
300
原创 fork
获取当前进程的PID和父进程的PID。 创建getpid1.c,编辑如下内容 执行过程: 在当前系统中使用ps和grep查找父进程2330,可以看到,id为2330的进程为bash即当前的脚本程序,因为是在当前bash中运行此程序,所以父进程为bash 进程创建fork() 产生进程的方式比较多,fork()是其中的一种方式。fork()函数以父进程为蓝本复制一个进程,其ID号和父进程ID号...
2019-10-11 18:46:01
327
原创 inode
inode 1.文件有创建者、文件的创建日期、文件的大小等信息就称作文件元信息这种储存文件元信息的区域就叫做inode,中文译名为"索引节点"。 每一个文件都有对应的inode,除了文件名以外的所有文件信息,都存在inode之中 2.inode包含文件的元信息,具体来说有以下内容: * 文件的字节数 * 文件拥有者的User ID * 文件的Group ID * 文件的读、写、执行权限 * 文件的...
2019-10-10 18:41:12
353
原创 lsof mmap具体用法 及 文件的特殊权限位
lsof lsof 文件名 查看某个文件被哪些进程在读写 lsof -c 进程名 lsof -p进程号 查看某个进程打开了哪些文件 lsof用法小结 lsof abc.txt 显示开启文件abc.txt的进程 lsof -i :22 知道22端口现在运行什么程序 lsof -c nsd 显示nsd进程现在打开的文件 lsof -g gid 显示归属gid的进程情况 lsof +d /usr...
2019-10-10 16:20:41
448
原创 linux应注意的小问题
进程终止问题 vi hello1.c gcc hello1.c -o hello1执行后ctrl + z 终止 fg 1 把进程提到前台,让进程继续执行 ctrl +z 终止 bg 1 切换到后台执行,但是此进程有控制台输出,此时在ctrl +z无法终止,在另一终端输入ps -ef | grep hello1找到文件,再kill -9 3533 才能终止程序进行。 mkfifo** 命名...
2019-10-10 15:04:07
165
原创 expr
expr 计算表达式的值 expr 1 + 2 #注意运算符两侧的空格,不写空格,当字符串处理。 注意通配符,需要转义 expr 1 * 2 注意书写转义符。 或写成expr 1 “*” 2 echo “scale=2;5/2”|bc #输出2.50 #意为输出5/2小数点后两位 变量(shell中默认把变量值当作字符串) a=10 #等号两侧不能有...
2019-09-26 18:43:27
373
原创 VI/VIM编辑器
启动vi/vim vi 文件名 vim 文件名 通过打开多个 #竖向两个窗口编辑 vi -oN 2.txt 3.txt #水平两个窗口编辑 vi -ON 2.txt 3.txt 常用的三种模式 命令模式:默认的模式 控制屏幕光标的移动、字符、字或者行的删除,移动,复制某区域 编辑(插入)模式:点击i键,进入编辑模式 用于文本的编辑,在此模式下,用户可以进行输入、查找等基本的文本操作、 行底(末...
2019-09-26 17:34:52
247
原创 find、xargs、正则表达式、grep
find find 查找路径 -name 根据名称查找 -type 根据类型查找 -size 根据大小查找(G、M、K、C) -atime 根据访问时间n24小时 -ctime 创建时间 -mtime 修改时间 -amin n分钟 -cmin -mmin +n n分钟或n天以前 -n n分钟或n天以内 find是用来在特定的目录下搜索符合条件的文件 格式:find 路径 查找选项 查找关键...
2019-09-25 16:29:50
559
原创 su和su-(su用户切换)
su用户切换(su和su-) 1.su 表示切换root账号,不改变工作目录,工作目录仍为shenlan. 2.su- 表示切换到root账号,改变工作目录(相当于su-root) 执行完上述后,先su - shenlan 切换到shenlan目录 在 su -,可以看出工作目录改变了。 ...
2019-09-24 17:07:37
349
原创 硬链接软链接
硬链接: 创建目录: mkdir min 创建一个目录min,在该目录下创建一个文件1.txt, ls 输入文本内容,cat 查看文本内容 查看文件属性 可以看出,该文件的innode :686821 link: 1 当给1.txt链接一个文件1_hard.txtt时,操作如下: 可以看出,链接后的文本内容完全相同。两个链接的文件属性也是完全相同的,但与未链接的文件1.txt相比较,可...
2019-09-24 16:50:11
334
原创 回文及分段回文
判断所输入的数字是否是回文数? 思路:回文数关于中心对称,只要比较对称的数即可 int main() { char a[100];int flag=1; gets(a); int length=strlen(a); for(int i=0;i<length/2;i++) { if(a[i]!=a[length-1-i]) { flag=0;break; } } if(flag==1) { p...
2019-09-18 18:29:05
366
原创 delete p;与delete [] p;的区别
delete p; 代表用来释放内存,且只用来释放p指向的内存,即p[0],析构一次。 delete[] p 用来释放p指向的内存,!!还逐一调用数组中每个对象的~A! class A { public: A() { cout << "A的构造函数" << endl; } ~A() { cout << "~A" <<...
2019-09-04 09:33:43
1956
原创 栈模板
栈的基本状态有:一般状态、栈空、栈满。当栈中没有元素时称为栈空;当栈中元素个数达到上限时,称为栈满;栈中有元素,但未达到沾满状态,则处于一般状态。 无论采用哪种数据结构,栈类中都应该包括以下基本操作:初始化、入栈、出栈、栈清空访问栈顶元素、检查栈的状态(满或空) #include<iostream> #include<cassert> using n...
2019-09-03 16:47:59
478
原创 static
static: 全局变量和静态全局变量 一、静态全局变量特点 1.该变量在全局数据区分配内存; 2.未经初始化的静态全局变量会被程序自动初始化为0( 在函数体内声明的自动变量的值是随机的,除非它被显式初始化,而在函数体外被声明的自动变量也会被初始化为0); 3.静态全局变量在声明它的整个文件都是可见的...
2019-08-24 16:43:55
517
原创 const
区分const修饰的量是否能改,简单来说,主要看const后跟的那个量,该量是不能修改的。 1、const修饰变量 const修饰变量,可以使变量具有常属性,也就是该变量在以后的使用中其值都不能进行改变。 注意:const修饰的变量要进行初始化。 const a=11; a=2;//错误,const 后面的a不能修改 2.const和指针 const 修饰指针变量有以下三种情况。 (1):con...
2019-08-23 18:34:55
406
原创 静态数据成员&&静态成员函数&&友元
创建静态成员和友元的目的: 创建静态成员主要是解决数据共享问题,而创建友元的目的是为了让某些函数访问类中的私有成员。 1…静态数据成员 思考:为什么要定义静态数据成员? 答:如果不定义为静态数据成员,那么每个对象都分别有一个i的副本(拷贝)。但定义为静态数据成员之后,所有的对象共享有一个i的副本,就是说i在内存里就一个副本。 那么,不同对象引用i,对i改变的话, 其他对象中i的值也会被改变,而且所...
2019-08-23 17:36:47
716
原创 构造函数析构函数和拷贝构造函数
构造函数:创建类对象,并初始化其值。 1.传参 2.按照类成员声明顺序依次构造其成员 3.执行构造函数函数体 析构函数:用来完成对象被删除前的一些清理工作(释放类对象) 1.执行析构函数函数 2.按照类中成员变量声明顺序的逆序依次析构其成员 初始化列表:初始化对象成员(调用成员对象的带参构造) 形式:在构造函数函数首部之后,函数体之前,其书写顺序不影响构造函数执行顺序 拷贝构造函数: 定义:当用一...
2019-08-21 17:19:03
267
原创 结构体字节对齐 c语言结构体字节对齐详解
首先我们来看一个结构体 例题1 struct STUDENT { char a; int b; }data; 如上结构体占多少个字节呢? 思考:char占一个字节,int占四个字节,所以总共占5个字节吗? 其实不是。这就牵扯到结构体中字节对齐的概念。 (什么叫字节对齐?结构体是一种构造数据类型,里面可以有不同的数据类型的成员,在这些数据成员中,不同的数据类型所占的内存空间是不同的,那么这些成员是...
2019-08-16 17:46:32
745
原创 容易搞错的压栈问题
编译器对++i和i++的处理是不一样的(存储上不一样) i++这种其实入栈的不是i的值,而是i++这个表达式的值,是通过寄存器进行的压栈; 如果参数是++i则入栈的就是i的值,i的值以最终结果为准。 例如: void main() { int i = 3; printf("%d %d", ++i, ++i); } 又如: void main() { int i = 8; printf(...
2019-08-16 15:39:52
290
原创 编程找1000之内所有完数,并按照下面格式输出其因子:6its factors are 1,2,3
了解: 一个数如果恰好等于它的因子之和,这个数就称为“完数”。 代码如下: #include<stdio.h> void main() { for (int i = 1; i < 1000; i++) { int sum = 0; for (int j = 1; j <= i-1; j++) { ...
2019-08-13 11:34:41
1080
原创 一维数组的删除
删除0 代码如下: int main() { int a[15] = { 1,2,3,0,3,0,2,0,1,3,0,2 }; int len = sizeof(a) / sizeof(a[0]); int i, j; i = 0; while (a[i] != 0) i++; for (j = i + 1...
2019-08-09 18:00:12
1943
原创 找次大值次小值
int main() { int a[] = { 1,3,2,7,9,2,4,6,8,20 }; int len = sizeof(a) / sizeof(a[0]); int m1 = a[0] > a[1] ? 0 : 1; int m2 = a[0] > a[1] ? 1 : 0; for (int i = 1; i < len; ++i) { if (a...
2019-08-09 17:55:32
866
原创 鸽巢排序
//鸽巢排序 int main() { int a[] = { 0,2,3,4,0,7,6,5,3,6,2,7,8,2,3,4,7,4,3,2 }; int b[9] = { 0 }; int len = sizeof(a) / sizeof(a[0]); for (int i = 0; i < len; ++i) { b[a[i]] += 1; } for (int ...
2019-08-09 16:55:19
203
原创 链表--删除指定值(单链表,双链表)
定义结构体: #include<stdio.h> #include<malloc.h> typedef struct _STU { int id; struct _STU* next; }STU,*PSTU; 头插 void Inserthead(PSTU* phead,int id) { PSTU pnew = (...
2019-08-08 19:05:22
544
原创 用指针处理链表—头插、尾插、头删、尾删、插入下标、插入值、清空、翻转
初步了解 链表是一种常见的重要数据结构,可以动态地进行存储分配 头指针head存放一个地址,该地址指向一个元素 链表中每个元素称为结点,每个结点包括两部分,用户需要用的实际数据和下一个结点的地址 最后一个元素不再指向其他元素它的地址存放一个NULL(空地址) 先建立一个链表 typedef struct connect_NODE { int value; struct connec...
2019-08-07 14:45:39
207
原创 ##给出年月日计算该日是该年的第几天
给出年月日计算该日是该年的第几天 ···c int year,month,day,x; //定义全局变量 int leap(int year) { if((year%4=0&&year%100!=0)||year%400=0) {return 1;} else {return 0;} } void f() { int y=0; int s[12]={31,28,31,30...
2019-07-31 22:32:21
615
原创 ##计算多个函数的定积分
计算多个函数的定积分* 这里以三个函数为例: #include<stdio.h> #include<math.h> double f1(double x) { return 2 * x*x + 3 * x + 5; } double f2(double x) { return 4 * pow(x, 2.71) - 6; } double f3(double x) { ret...
2019-07-31 17:07:18
640
原创 ## 拷贝法和指针法对汉字或字符串排序
运用冒泡法对汉字排序的两种方法 方法一: 拷贝法:把3个字符串拷贝交换顺序 #include<stdio.h> #include<string.h> void sort(char p[][15], int len) { char t[15]; for (int i = 0; i < len-1 ;++i) //冒泡排序,进行len-1次循环,实现len-1趟比较...
2019-07-31 15:53:31
149
原创 把两个已按升序排列的数组合并成一个升序数组,要求用函数实现(归并排序)
把两个已按升序排列的数组合并成一个升序数组,要求用函数实现(归并排序) i为a1数组元素下标 j为a2数组元素下标 k为a3数组元素下标 原理:比较i,j数字大小,当i<j时,把i中的元素放入a3中,给K++,i++(否则,把j中的元素放入a3中,k++,j++)再比较i和j的值,直到i>len1或j>len2循环中止;此时考虑越界问题,当j越界,i中元素还有剩余,把i中剩下的元...
2019-07-30 19:34:15
9137
原创 #预处理命令常见考点
*了解: 预处理命令:以#开头,独立成行,行尾不用加分号(即可以加,也可以不加) 宏定义: #define 标示符 字符序列 宏定义在编译前会做宏展开(用字符序列替换掉代码中的标示符),替换的过程被称为宏展开; 有点:1.书写便利; 2.可读性好; 3.便于修改; 易错点: 1 #define T a+b时,代码中的int Ta;中的T不会被替换掉,其中的T不独立,不是标示符 其次, ...
2019-07-29 09:33:11
334
原创 #逆序和顺序输出的简单方法--调用函数
顺序,逆序 顺序输出: 调用函数做顺序输出: 结果: 逆序输出: 只需将 fn1(a / 10); printf("%d ", a % 10);互换; 结果: 例如: 编写一个函数,输入一个4位数,要求输出这四个数字字符,但每两个数字间空一个空格。此类的题就可以这样做。 ...
2019-07-27 18:45:09
527
原创 5阶魔方阵
5阶魔方阵 思路: 1.首先把1放在第一行的正中间; 2.其后每个数放在前一个数的右上角(i-1,j+1); 3.如果右上角被占,则放在前一个数的正下; #include<stdio.h> //int main() //{ // const int n = 5; // int a[n][n] = { 0 }; // int i = 0; // int j = n / 2; // int...
2019-07-25 15:09:11
3786
原创 值得注意的无限循环语句
** 无限循环语句 ** ****了解: goto无条件跳转 for循环中的()和:不可省略,其余均可省略;for(;;)等价于while(1)for循环表达式1只执行1次。 第一种: while(1) { printf("…\n"); } .第二种: for(;
2019-07-20 18:12:06
993
原创 *用for循环求“水仙花数”和“玫瑰花数”
【 用for循环求水仙花数和玫瑰花数】 初步了解 for循环: 1.表达式:for(单次表达式1;条件表达式2;末尾循环体3) { 中间循环体4; } 2.执行顺序:表达式1——表达式2——表达式4——表达式3——表达式2——表达式4——表达式3… 编码实践 用for循环求水仙花数 了解: 含义:“水仙花数”是一个三位数其各位数字的立方和等于该数本身。 算法分析:把给出的某个三位数的个位十位百位分...
2019-07-19 23:21:22
1656
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅