Archive -- 一些帖子或网站的网址记录

本页面用于记录平常所查找网页中的干货,因无法全部记下或者太浪费时间,所以使用此页面也记录下文章地址,以备日后查看

目录

通信

大O符号/算法复杂度

大O、小o符号...经常出现于算法分析中的符号表示

CSDN

Wikipedia

LDPC码

第八章 LDPC码

中科大

Turbo 码

第四章 卷积码

编程

Markdown语法

--By @riku

CPP

内存分配

内存的静态分配和动态分配的区别

一是时间不同。静态分配发生在程序编译和连接的时候。动态分配则发生在程序调入和执行的时候。

二是空间不同。堆都是动态分配的,没有静态分配的堆。栈有2种分配方式:静态分配和动态分配。静态分配是编译器完成的,比如局部变量的分配。动态分配由函数alloca()进行分配。不过栈的动态分配和堆不同,他的动态分配是由编译器进行释放,无需我们手工实现。
对于一个进程的内存空间而言,可以在逻辑上分成3个部份:代码区,静态数据区和动态数据区。动态数据区一般就是“堆栈”。“栈(stack)”和“堆(heap)”是两种不同的动态数据区,栈是一种线性结构,堆是一种链式结构。进程的每个线程都有私有的“栈”,所以每个线程虽然代码一样,但本地变量的数据都是互不干扰。一个堆栈可以通过“基地址”和“栈顶”地址来描述。全局变量和静态变量分配在静态数据区,本地变量分配在动态数据区,即堆栈中。程序通过堆栈的基地址和偏移量来访问本地变量。
一般,用static修饰的变量,全局变量位于静态数据区。函数调用过程中的参数,返回地址,EBP和局部变量都采用栈的方式存放。

————————————————

版权声明:本文为CSDN博主「C语言与CPP编程」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_41055260/java/article/details/105717146

在分配内存的时候算不算创建了该变量

分配内存就算是创建了变量了
声明不算创建变量
创建变量时可以初始化也可以不初始化,但有些类型的变量必须初始化,比如引用

分配内存算创建了该变量,初始化操作是让它拥有一个有意义的值。
静态局部变量和全局变量一样。初始化是在第一次调用函数的时候初始化。

函数或变量在声明时,并没有给它实际的物理内存空间,它有时候可保证你的程序编译通过;
函数或变量在定义时,它就在内存中有了实际的物理空间。

static关键字

posted @ 2020-09-14 19:41  励学敦行  阅读(420)  评论(0编辑  收藏  举报