自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zhangjie1315的博客

成长之路

  • 博客(35)
  • 收藏
  • 关注

原创 浅拷贝&深拷贝&Cope On Write

空间不重要,类型才是最重要的 简单的赋值浅拷贝 s1和s2包含的指针对象同时指向同一块内存,析构时delete了两次这个内存出错 构造s2时拷贝一块跟s1指向数据块一样大的数据块,并将值拷贝下来,这样s1和s2指向各自的数据块,析构时候释放各自的数据块“`...

2018-07-28 20:02:28 533

原创 c++动态内存管理

c语言中使用malloc(进行动态开辟空间)、calloc(动态开辟空间,函数在返回前把内存初始化为0)、realloc(用于增容,用于修改一个原先已经分配的内存块大小)、free进行动态内存管理c++通过new 和 delete动态管理内存 new/delete动态管理对象 new[]/delete[]动态管理对象组void Test(){ int* p4=new int; ...

2018-07-26 19:48:14 202

原创 类和对象 const&内联&静态成员&友元

const修饰成员函数 成员函数后加const,const修饰this指针所指向的对象,保证调用这个const成员函数的对象在函数内不会被改变 可读可写可以调用只读;只读不能调用可读可写 const在之前,修饰对象 const Date *p Date const p const在之后,修饰指针变量本身 Date const pconst对象不可以调用非c...

2018-07-26 14:59:54 237

原创 类和对象--默认的成员函数

隐含的this指针每个成员函数都有一个指针形参,称为this指针,this指针是隐式的(构造函数比较简单,没有这个隐含的this指针)对象调用成员函数时,对象地址做实参传递给成员函数的第一个形参this指针this指针是成员函数隐含指针形参,是编译器自己处理的类的默认成员函数:构造函数拷贝构造函数析构函数赋值操作符重载取地址操作符重载const修饰的取地址操作符重载...

2018-07-26 14:07:49 359

原创 类&对象--类&对象概念及定义

对象:指的是类的实例,将对象作为程序的基本单元,将程序和数据封装其中,提高软件的重用性、灵活性和扩展性 面向对象三大特性:封装、继承、多态 封装性:数据和方法封装到一起 访问限定符 三种访问限定符:public(共有)、protected(保护)、private(私有)public成员可以从类外部直接访问,private/protected成员不能从外部直接访问限定符在类体中可以...

2018-07-26 11:02:52 722

原创 指针、引用、const

引用:引用不是定义一个新的变量,而是给已经定义过的变量重新起一个别名 格式:类型& 引用变量名=已定义过的变量名 int& b=a; b是a的引用,b是a的别名 特点:一个变量可取多个别名引用必须初始化引用在初始化时只能引用一次,不能改变为再引用其他变量引用作为参数: 1. 如果形参为非引用的传值方式,则生成局部临时变量接收实参的值 2. 如果实...

2018-07-26 09:15:06 121

原创 C++基础知识介绍

c几乎是c++的一个子集,c语言支持的语法在c++中基本都支持并需要使用。 内置类型:语言内部已定义的基本类型 自定义类型:自己用struct/class/enum/union等定义的就是自定义类型 名字空间域相当于一个全局域,用花括号把文件的一部分括起来,并以关键字namespace开头给它起一个名字 名字空间域解决了全局命名冲突的问题 using namespace std; 可以直...

2018-07-25 17:55:29 200

原创 线程死锁

死锁条件 说死锁条件之前先要谈一个问题:可重用资源和可消耗资源 可重用资源 可重用资源是指一次仅供一个进程安全使用且不因使用而耗尽的资源。进程得到资源单元并使用后,会释放这些单元供其他进程继续使用。可重用资源的例子包括:处理器,i/o通道,内存和外存,设备,以及诸如文件,数据库和信号量之类的数据结构。 可重用死锁的例子:两个相互竞争的进程都占用一个资源并请求另一个资源时,就会发生死锁。...

2018-05-06 18:03:49 135

原创 多线程

线程的同步与互斥 如果每个线程使用的变量都是其他线程不会读取和修改的,那么就不存在一致性问题。同样,如果变量是只读的,多个线程同时读取该变量也不会有一致性问题。但是,当一个线程可以修改的变量,其他线程也可以读取和修改的时候,我们就需要对这些线程进行同步,确保他们再访问变量的存储内容时不会访问到无效的值。 假设两个线程读写相同变量时,线程A读取变量然后给这个变量赋予一个新的值,但写操作需要两个...

2018-05-06 17:47:43 227

原创 简单的UDP网络程序

UDP服务器 service.c#include <stdio.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <string.h>#include <stdlib.h>#include <ar...

2018-05-06 16:09:31 232

原创 网络编程套接字

认识IP地址 IP协议有两个版本,IPv4和IPv6。无特殊说明,默认都是IPv4IP地址是在IP协议中,用来标识网络中不同主机的地址对于IPv4来说,IP地址是一个4字节,32位的整数。IPv6,16字节。我们通常使用“点分十进制”的字符串表示IP地址,如192.168.1.1;用点分割的每一个数字表示一个字节,范围为0-255源IP地址和目的IP地址 在IP数据包头部中,有...

2018-05-06 15:08:42 134

原创 网络基础(一)

局域网LAN:计算机的数量更多了,通过交换机和路由器连接在一起1.所有主机主机之间交互信息都是可以监听的 两台主机之间可以直接通信 2.网卡:有序列叫MAC地址,全球唯一的 3.交换机:把局域网分成若干个碰撞域(发生碰撞的概率减小) 数据转发 4.路由器:连接外网(更高级) 广域网WAN将远隔万里的计算机都连接在一起 1.主要有路由器 2.找主机:先找到目标主机所在的局域网,在...

2018-05-05 01:04:56 157

原创 进程间关系和守护进程

进程组 进程组是一个或者多个进程的集合。每个进程除了有一个进程ID外,还属于一个进程组。每个进程组由一个唯一的进程组ID。每个进程组都可以有一个组长进程,组长进程的标识是其进程组ID等于其进程ID。组长进程可以创建一个进程组,创建该组中的进程,然后终止。只要在某个进程组组中一个进程存在,则该进程组就存在,与其组长进程是否终止无关。–类比班级、班长实例 作业 Shell分前后台来控制的不是进程...

2018-05-03 11:29:30 95

原创 线程

线程(TCB)的概念 1. 线程是一个进程内部的控制序列 2. 一切进程至少都有一个执行线程 进程和线程: 1. 线程是在进程内部运行的执行流(线程在进程的地址空间内运行) 2. 线程执行粒度更细 3. 线程之间大部分资源是共享的(但也有私有的:线程拥有独立的上下文数据、有自己的私有栈结构) 进程的多个线程共享:地址空间、代码数据、文件描述符、当前工作目录、用户id和组id...

2018-04-30 23:33:30 352

原创 进程信号

信号基本概念ctrl+c产生的信号只能发给前台进程。一个命令后面加个&可以放到后台运行,这样shell不必等待进程结束就可以接受新的命令,启动新的程序Shell可以同时运⾏行一个前台进程和任意多个后台进程,只有前台进程才能接到像Ctrl-C这种控制键产⽣生的信号前台进程在运⾏行过程中,用户随时可能按下Ctrl-C⽽而产⽣一个信号,也就是说该进程的⽤户空间代码执行到任何地⽅方都有可...

2018-04-30 22:26:45 91

原创 进程间通信-管道

进程间通信的目的数据传输:一个进程需要将它的数据发送给另一个进程资源共享:多个进程之间共享同样的资源通知事件:一个进程需要向另一个或者另一组进程发送消息,通知发生了某种事件进程控制:有些进程希望完全控制另一个进程的执行(如Debug进程)管道 分为:匿名管道pipe和命名管道 也是一个文件 什么是管道??? 5. 管道是unix中最为古老的 进程间通信的形式 ...

2018-04-30 17:33:28 100

原创 基础IO

系统文件IO 操作文件除了c接口,我们还可以采用系统接口来进行文件访问。 hello.c写文件:#include<stdio.h>#include<sys/types.h>#include<sys/stat.h>#include<fcntl.h>#include<unistd.h>int main(){ ...

2018-04-30 16:31:03 116

原创 进程控制

进程创建 fork是非常重要的函数,从已经存在的进程里创建一个新进程。新进程为子进程,原进程为父进程。 进程调用fork,当控制转移到内核中的fork代码后,内核做:分配新的内存块、内核数据结构给子进程将父进程部分数据结构内容拷贝到子进程添加子进程到系统程序列表中fork返回,开始调度器调度当一个进程调用fork之后,就会有两个二进制代码相同的进程fork之前父进程独立运...

2018-04-30 12:11:28 85

原创 Linux进程概念

Linux进程概念 截止目前我们认识的计算机,都是由一个个硬件组成输入单元:键盘、鼠标、扫描仪、写板等中央处理器(CPU):含有运算器和控制器等输出单元:显示器、打印机等冯诺依曼体系强调以下几点: 1. 这里的存储器指的是内存 2. 不考虑缓存情况,智力的CPU只能对内存进行读写操作,不能访问外设(输入或输出设备)。 3. 外设要输入或者输出数据,也只能写入内存或从内...

2018-04-29 15:12:06 99

原创 Linux编辑器-vim常用命令

Linux编辑器-vim常用命令 1.vim正常模式命令集 o 进入插入模式插入新的一行,从行首开始输入文字 vim可以用键盘光标控制上下左右:k 上、j 下、h 左、l 右 hjkl w 光标跳到下一个字的开头,b 光标回到上一个字的开头 gg 进入到文本的开始,shift+g 进入到文本的末尾 ctrl+b 屏幕向后移动一页, ctrl+f屏幕向前移动一页 dd 删除光...

2018-04-29 13:15:00 183

原创 进程间通信—消息队列

消息队列 一、什么是消息队列? 1. 消息队列提供了一个从一个进程向另一个进程发送一块数据的方法。 2. 每个数据块都被认为有一个类型,接收者进程接受的数据块可以有不同的类型值。 3. 消息队列也有和管道一样的不足,每个消息的最大长度(MSGMAX)、每个消息队列总的字节数(MSGMNB)、系统消息队列的总数(MSGMNI)都有上限。IPC对象数据结构 内核为每一个IPC对象维...

2018-04-17 22:26:29 239

原创 简单总结

static 1.当它作用于函数定义或者代码块之外的变量声明时,static关键字用于修改标识符的链接属性。变量或者函数只能在当前源文件中进行访问。 2.用于代码块内部进行变量声明时,static关键字用于修改变量的存储类型。从自动变量变为静态变量。 volatile 作用:编译时不断优化,执行时不缓存,每次需要从内存中读出(保证了内存的可见性)。 const 用来定义常量,如果一个变...

2018-04-12 10:16:28 108

原创 僵尸进程和孤儿进程

进程状态 为了弄明白正在运行的程序是什么意思,我们需要知道进程的不同状态。一个进程可以有一下几个状态:(在Linux内核里,进程有时候也叫做任务) R运行状态(running):该状态并不意味着进程一定在运行中,它表明进程要么是在运行中要么在运行队列里。 S睡眠状态(sleeping):意味着进程在等待事件完成(这里的睡眠有时候也叫做可中断睡眠-(interruptible sleep))...

2018-03-29 19:52:27 197

原创 VIM

vim 的基本命令 插入模式: i 进入插入模式后从光标当前位置开始输入文件;a 进入插入模式,是从光标所在位置下一个位置开始输入文字;o 进入插入模式后,是插入新的一行,从行首开始输入文字 **删除文字:**dd 删除光标所在行;#dd 从光标所在行开始删除#行;x 每按一次,删除光标所在位置的一个字符;#x 表示删除光标所在位置的“后边(包含在自己在内)”#个字符 复制:yy ...

2018-03-21 23:21:55 112

原创 linux常见指令与权限

cd, touch, ls, rm, mv cd指令:cd+目录名 改变工作目录,将当前工作目录改到制定目录下。 cd.. 返回上级目录 cd /home/zahngjie/linux/ 绝对路径 cd ../day02/ 相对路径 cd ~ 进入家目录 cd - 返回最近访问的目录 touch 可以更改文档或者目录的时间,包括存取时间和更改时间,或者新建一个文件...

2018-03-15 23:16:33 219

原创 操作符简单剖析

算数操作符: +  -  *  /  %1.除了%操作符之外,其他的几个操作符可以作用于整数和浮点数。2.对于/操作符如果两个操作数都是整数,执行整数除法。而只要有浮点数执行的就是浮点数除法。3.%操作符的两个操作数必须为整数。返回的是整出之后的余数。移位操作符:<<左移操作符     左边抛弃右边补0  >>右移操作符  1.逻辑移位——左边用0填充,右边丢弃  2.算数...

2017-11-20 22:03:03 153

原创 函数(输出乘法口诀、交换两个数、判断闰年、创建数组、判断素数)

1. 实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定, 输入9,输出9*9口诀表,输出12,输出12*12的乘法口诀表# include<stdio.h>void print(int num){ int i = 0; for (i = 1; i <= num; i++) { int j = 0; for (j = 1; j <= i; j+...

2017-11-20 00:08:37 220

原创 数组交换、计算求值、出现9的次数

1.将数组A中的内容和数组B中的内容进行交换。(数组一样大) # include<stdio.h>int main(){ int i = 0; int j = 0; int a[3] = { 3, 5, 7 }; int b[3] = { 9, 8, 2 }; for (i = 0; i < 3; i++) { a[i] = a[i] ^ b[i]; b...

2017-11-19 01:41:00 152

原创 水仙花数、Sn求和、输出菱形星、验证花括号

1.“水仙花数”是指一个三位数,其各位数字的立方和确好等于该数本身,如;153=1+5+3,则153是一个“水仙花数”#include <stdio.h>#include <math.h>#include<stdlib.h>int main(){ int i = 0; int count = 0; int tmp = 0; for (i = 1...

2017-11-19 01:32:37 397

原创 返回参数二进制中1的个数、输出二进制序列

1.写一个函数返回参数二进制中 1 的个数 比如: 15 0000 1111 4 个 1 程序原型: 1-# include<stdio.h>int main(){ int num =15; int count = 0; while (num) { count++; num = num&(num - 1); } printf(...

2017-11-19 01:01:20 194

原创 折半查找、大小写转换

1.#includeint binary_search(int arr[], int k, int left, int right){while (left {int mid = left + (right - left) / 2;if (arr[mid] == k){return mid;}else if (arr[mid] {left = mid

2017-11-18 01:09:02 135

原创 模拟三次密码输入的场景

# include#include#include int main(){int i = 0;char passwd[10] = { 0 };for (i = 0; i {printf("请输入密码:>");scanf_s("%s", passwd);if (strcmp(passwd, "123456") == 0){break;}

2017-11-18 01:07:08 117

原创 猜数游戏

# include#include//为了获得随机数#include//获取时间void menu(){printf("*********************************\n");printf("***********  1.play   ***********\n");printf("***********  0.exit   ***********\

2017-11-18 01:05:08 178

原创 打印素数、输出乘法口诀、判断闰年

1.打印100-200之间的素数(质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数)#includeint main(){int i = 0;int j = 0;for (i = 100; i {for (j = 2; j {if (i%j == 0)break;}if (j == i)      printf("%4d", i

2017-11-07 12:24:23 192

原创 大家好,给大家介绍一下,这是我的女朋友@代码

人生难免都会接触一些新的事物,只有真正的接触了,才能够体会到其中的快乐。生命中的第一次愈多,生命也就愈益多姿多彩。 博客是什么?以前听说过,心中一直认为就是那种成功人士或者资深教授等拥有非常高学历的人才能够写的东西,所以开始就觉得自己跟博客并没有什么瓜葛。但是我对新鲜事物总有一种强烈的好知欲望,私下偷偷问了一下度娘,官方解释那一大堆我就不写了,我看到了中文名-网络日志,它是一种传播个人思想,带

2017-11-05 01:13:30 3678

空空如也

空空如也

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

TA关注的人

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