我们之前说过在 C 语言中:const 修饰的变量是只读的,其本质还是变量;它修饰的局部变量在栈上分配空间,修饰的全局变量在只读存储区分配空间;const 只在编译期有效,在运行期无用;const 修饰的变量不是真的常量,它只是告诉编译器该变量不能出现在赋值符号的左边而已。C 语言中的 const 使得变量具有只读属性,所以它在 C 语言中不能定义真正意义上的常量!在 C 语言中,能定义常量的只有 enum(枚举)啦。但是 C++ 在 C 语言的基础上对 const 进行了进化处理:当碰见 const 声明时在符号表中放入常量;编译过程中若发现使用常量则直接以符号表中的值替换;编译过程中若发现下述情况则给对应的常量分配存储空间:a> 对 const 常量使用了 extern,b> 对 const 常量使用 & 操作符。符号表是编译器中的一种数据结构。C++ 编译器虽然可能为 const 常量分配空间,但不会使用其存储空间中的值。那为什么还有这样做呢?是为了兼容 C 语言的特性!
分类:
其他好文 时间:
2018-05-04 12:04:23
阅读次数:
140
java虚拟机栈的理解 虚拟机栈就是我们所熟知的栈内存,栈内存属于线程独有的.而在栈内存中的局部变量表中存储的引用类型只是存储对象的内存地址.对象的创建在堆内存中,即对象在线程共享区中. 局部变量表: 局部变量表的内存空间在编译时期完成分配,用于存放编译期间可知的各种基本数据类型,引用类型以及ret ...
分类:
编程语言 时间:
2018-05-03 00:57:51
阅读次数:
172
const修饰的是(类)静态常量,,其值是在编译期间确定的readonly修饰的是动态常量。 A、C#中的const和readonly的区别 C#中定义常量有两种方式,一种叫做静态常量,使用“const”关键字定义(即const = static const),const定义的值是在编译期间确定的, ...
分类:
编程语言 时间:
2018-05-01 12:31:05
阅读次数:
261
在一般的程序中,我们难免会遇到动态的申请内存,那么动态内存分配的意义到底是什么呢?在 C 语言中的一切操作都是基于内存的,变量和数组都是内存的别名。内存分配由编译器在编译期间决定,定义数组的时候必须指定数组长度,数组长度当然也是在编译期就必须确定的。 那么为什么会有动态分配内存的需求呢?在程序运行的过程中,可能需要使用一些额外的内存空间。我们都是在 C 语言中使用 malloc 来动态申请内存的,当时释放的时候是用 free。
分类:
其他好文 时间:
2018-04-25 10:16:56
阅读次数:
166
我们在之前讲到过指针的本质是变量,当然指针也就会占用一定的内存空间。我们便可以定义指针的指针来保存指针变量的地址值啦,这便是我们所说的二维指针啦。 ?那么为什么需要指向指针的指针呢?指针的本质便是变量,对于指针也同样存在传值调用和传址调用。1、C 与应用中只支持一维数组,并且它的大小必须在编译期就作为常数确定;2、数组里的元素可以是任何类型的数据,甚至可以是另一个数组,这也就是多维数组的本质了。
分类:
编程语言 时间:
2018-04-23 00:18:22
阅读次数:
153
一、为什么需要引入类型检查? JS作为一个弱类型语言,一个著名的黑点是它很容易就写出非常隐蔽的隐患代码,在编译期甚至运行时看上去都不会报错,但是可能会发生各种各样奇怪的和难以解决的bug。类型检查是当前动态类型语言的发展趋势,JS的强类型超集TypeScript已经有了相当的知名度,吸引了大量开发者 ...
分类:
其他好文 时间:
2018-04-22 18:07:39
阅读次数:
514
函数调用会导致两件事情发生: 如果函数已经被声明为inline 内联则函数体可能已经在编译期间它的调用点上就被展开如果没有被声明为inline 则函数在运行时才被调用函数调用会使程序控制权被传送给正在被调用的函数而当前活动函数的执行被挂起当被调用的函数完成时主调函数在调用语句之后的语句上恢复执行函数 ...
分类:
编程语言 时间:
2018-04-21 23:37:42
阅读次数:
207
03_12_多态 1. 定义 动态绑定是指“在执行期间(而非编译期间)”判断所引用对象的实际类型,根据其实际的类型调用其相应的方法。 2. 前提条件 要有继承 要有重写 父类引用指向子类对象 ...
分类:
其他好文 时间:
2018-04-15 21:07:29
阅读次数:
144
第一次发布随笔,有点小兴奋,还是进入正题吧。 java代码运行一般分为编译期和运行期。编译期负责将.java(如Student.java)编译成.class文件,然后在运行期通过类加载过程(加载,连接(验证,准备,解析),初始化,使用,卸载),类加载阶段将在下一章节进行分析,此处就不在赘述。 先来看 ...
分类:
编程语言 时间:
2018-04-09 00:26:38
阅读次数:
172
指令(Directive) AngularJS 有一套完整的、可扩展的、用来帮助 Web 应用开发的指令集 在 DOM 编译期间,和 HTML 关联着的指令会被检测到,并且被执行 在 AngularJS 中将前缀为 ng- 这种属性称之为指令,其作用就是为 DOM 元素调用方法、定义行为绑定数据等 ...
分类:
其他好文 时间:
2018-04-08 22:34:15
阅读次数:
214