
c++
yanyang已存在!
这个作者很懒,什么都没留下…
展开
-
volative、mutable和explicit关键字
1、volatile关键字volatile的本意是“易变的”,volatile关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改,比如操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问。当要求使用volatile 声明的变量的值的时候,系统总是重新从它所在的内存读取数据,即使转载 2017-11-21 15:30:29 · 343 阅读 · 0 评论 -
i++与++i是一样的吗?
在c语言中,我们经常使用i++和++i,可能都会以为它们是一样的,就是对i进行了加1操作。实际上,对于编译器来说它们又意味着什么?会有何不同呢? 之前我都是认为:i++和++i都是对i进行了加1操作,唯一有区别的是:i++ :先取i的值,再对i加1++i :先对i加1,再取i的值但是仅仅是这些不同吗?通过下面的一段示例代码,你就会急迫地想知道:编译器到底是如何处原创 2017-10-25 15:02:00 · 1923 阅读 · 1 评论 -
c++带默认值参数的函数
带默认值参数的函数即在函数定义或声明时,我们可以赋予函数参数默认值。所谓默认值就是在调用时,可以不写某些参数的值,编译器会自动把默认值传递给调用语句中。如果在函数的声明和定义中同时设置同一个参数的默认值时,则要求默认值设置是相同。int sum(int a = 10, int b = 20);int sum(int a, int b){ return a + b;}int main(原创 2017-10-21 10:26:51 · 1376 阅读 · 0 评论 -
inline(内联)函数
inline函数一、定义 inline函数是指用inline关键字修饰的函数。二、使用 内联函数是在程序运行过程中没有函数的调用开销,而是在函数的调用点将函数的代码直接展开的。从源代码层来看,有函数结构原创 2017-10-20 22:16:09 · 362 阅读 · 0 评论 -
引用与指针的区别
int a = 10; int *p = &a;//指针 int& b = a; //引用可以从上面简短的代码中看到,在指针和引用中都有&操作符,两个的区别是:当&前面有类型时(例如int),这种情况属于引用。接下来,可以看一下对应的汇编代码:从汇编上来看,指针与引用是相同的,没有区原创 2017-10-20 21:28:39 · 206 阅读 · 0 评论 -
c语言与c++中const的区别
首先声明一下:const的不同是由于编译器对const的处理方法不同造成的。因此,我们所接下来所说的差异是分别针对c89和c++99版本的编译器。1、 c语言中的const #include void main() {const int a = 10;//int a原创 2017-10-20 20:29:05 · 754 阅读 · 0 评论 -
函数的栈帧过程
几乎所有的函数都使用了栈,没有栈就没有函数,没有局部变量。在程序运行过程中,栈保存了一个函数调用所需要的维护信息,也可称为堆栈帧或者活动记录。堆栈帧一般包括以下几个方面: (1)函数的返回地址和参数(2)临时变量:包括函数的非静态局部变量以及编译器自动生成的其他临时变量(3)保存的上下文:包括在函数调用前后需要保持不变的寄存器在I386中,一个函数的活动记录用es原创 2017-10-18 18:56:54 · 297 阅读 · 0 评论