自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 指针

指针的概念:指针就是地址,它的值指向存在电脑存储器中的另一个值(通过指针找到以它为地址的内存单元)。二级指针:指针变量也是变量,对于变量都有对应的地址,存放指针变量的地址就是二级指针为什么存在指针:    计算机是将内存分成很多小的单元,每个单元对应一个独一无二的地址,所以一个地址就对应一个空间。    对于一个32位的机器,假设有32根地址线,假设每根地址线再寻址的是产生一个电信号(0或1),那...

2018-07-13 16:35:06 314

原创 指针数组和数组指针

指针和数组的区别:    数组:    1.数组要么在静态存储区被创建(全局数组),要么在栈上被创建(局部数组);    2.数组名对应着(不是指向)一块内存(大小已知),其地址与容量在生命周期保持不变,只有数组内容可以改变。    指针:    1.指针可以随时指向任意类型的内存块(不同类型可以用强制类型来转换实现),他的特征是“可变的”。    2.常用指针来操作内存,指针远比数组灵活,但也更...

2018-07-13 16:33:47 282

原创 函数指针

函数指针:    类似数组指针的理解,首先函数指针是指向函数的指针。    首先看一段代码:void test(){       printf("hello\n");}int main(){       printf("%p\n", test);       printf("%p\n", &test);       system("pause");       return 0;}输出结果...

2018-07-13 16:31:32 176

原创 程序的翻译环境和执行环境

程序的翻译环境和执行环境    在ANSN C( ANSI C是由美国国家标准协会(ANSI)及国际标准化组织(ISO)推出的关于C语言的标准。ANSI C 主要标准化了现存的实践, 同时增加了一些来自 C++ 的内容 (主要是函数原型) 并支持多国字符集 (包括备受争议的三字符序列)。 ANSI C 标准同时规定了 C 运行期库例程的标准)的任何一种实现中,存在俩种不同的环境    1.翻译环境...

2018-07-13 16:30:23 389

原创 const和valotile关键字

const关键字:    const关键字主要是为了防止修饰的对象被修改,如果修饰的变量被修改那么编译器就会报错。当const修饰一个变量的时候,首先把变量变成一个只读变量,这里的只读不是在全局数据区或段,他原来在那个区域他就在哪个区域。使用const的好处是能够降低写程序bug。    1.修饰全局变量    2.修饰指针:指针不可以修改,但是指针所指向的变量可以修改。    3.表示函数的输入...

2018-07-13 16:28:32 510

原创 数据在内存中的存储

数据在内存中的存储首先认识一下计算机存储结构:寄存器:中央处理器CPU的一部分,空间比较小在kb级别,用来暂存指令,数据和地址。CPU在处理数据时往往先把数据取存到寄存器中,然后再做处理,这样可以加快直接从内存中读取指令和数据。高速缓存区:内存与CPU之间的存储器,容量比较小在MB级别,但是速度比内存高的多(比寄存器要慢一倍左右),接近于CPU的速度,它是加速读取速度的一个桥梁, CPU在内存中读...

2018-07-13 16:27:51 3857

原创 C语言动态内存管理

说到内存管理,一定脑海中浮现的第一幅图就是程序内存结构图通常的内存开辟方式在栈上开辟空间,开辟的大小是固定的,数组在声明的时候必须指定数组长度,他在编译的时候好分配内存。1.动态内存函数void* malloc (size_t size);//该函数是内存申请一块size大小的连续可用空间,并返回指向该内存的指针。 如果开辟成功,则返回指向该内存的指针如果开辟失败,则返回一个空指针返回类型是voi...

2018-07-13 16:25:57 167

原创 C++动态内存管理

接下来我们c++动态内存管理C++通过new和 delete动态管理内存(在堆上动态分配内存)new/delete动态管理对象。new[]/delete[]动态管理对象数组注意malloc/free、new/delete、new[]/delete[],如果没有匹配使用,将会出现内存泄漏new的执行过程调用operator new()(标准库函数)开辟空间->调用构造函数delete的执行过程...

2018-07-13 16:24:17 166

原创 深度剖析new/delete & new[]/delete[]

new/delete & new[]/delete[]代码测试new/delete & new[]/delete[]到底在执行过程中做了些啥#include <iostream>using namespace std;class Array{public:       Array(size_t size = 10) :_size(size), _a(0)       {...

2018-07-13 16:22:28 211

原创 深浅拷贝

浅拷贝 :深拷贝:写时拷贝:引入一个计数器,每片不同的空间都有一个计数器组成,在构造第一个类的指向的时候,计数器初始化为1,之后每次都在有新的类也指向同一块空间的时候,就给计数器+1,在析构时判断该片空间对应的计数器是否为1,为1在执行清理工作,否则对计数器-1.三种引用计数方案class String1{private:       char* _str;       static int _r...

2018-07-13 16:20:39 208

原创 僵尸进程和孤儿进程

僵尸进程给进程设置僵尸进程是为了维护子进程的信息,以便于父进程在以后的某个时间获取这些信息包括(进程ID,终止状态以及资源利用信息(CPU时间,内存使用量))僵尸状态:当进程退出父进程没有读取到子进程退出的返回代码时就会产生僵尸进程(也就是子进程退出的时候父进程没有调用wait/waitpid)。僵尸进程会以终止状态保存在进程表中,并且会一直在等待父进程读取退出状态码。所以只要子进程退出,父进程还...

2018-06-14 16:35:01 247

空空如也

空空如也

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

TA关注的人

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