c++知识总结(2)
来源:互联网 发布:单片机一帧是什么意思 编辑:程序博客网 时间:2024/06/05 21:18
6、内存分配的形式有哪些?
内存分配有三种方式:
一:从全局存储区域分配:这时内存在程序编译阶段就已经分配好,该内存在程序运行的整个周期都有效,如:全局变量、static静态变量。
二:从栈区分配:在执行函数的时候,函数中的局部变量的存储单元都可以从栈中分配,函数执行结束后这些存储单元都会被自动释放,实现从栈中分配存储单元运算操作内置于处理器的指令集中,效率很高但是分配的内存容量有限。
三:从堆中分配:也称为动态内存分配,在程序运行期间,可以使用malloc和new申请任意数量的内存单元,由程序员决定在什么时候使用free和delete释放内存。
7、栈和队列的区别
(1).队列先进先出,栈先进后出。
(2). 对插入和删除操作的"限定"。
栈是限定只能在表的一端进行插入和删除操作的线性表。
队列是限定只能在表的一端进行插入和在另一端进行删除操作的线性表。
(3).遍历数据速度不同。栈只能从头部取数据,也就最先放入的需要遍历整个栈最后才能取出来,而且在遍历数据的时候还得为数据开辟临时空间,保持数据在遍历前的一致性。队列则不同,它基于地址指针进行遍历,而且可以从头或尾部开始遍历,但不能同时遍历,无需开辟临时空间,因为在遍历的过程中不影像数据结构,速度要快的多
8、变量声明与定义的区别
所谓定义就是(编译器)创建一个对象,为这个对象分配一块内存,并给它取上一个名字,这个名字就是就是我们经常所说的变量名或对象名。
声明有2重含义:
(1) 告诉编译器,这个名字已经匹配到一块内存上,下面的代码用到变量或者对象是在别的地方定义的。声明可以出现多次。
(2) 告诉编译器,这个名字已经被预定了,别的地方再也不能用它来作为变量名或对象名。
定义和声明的最重要区别就是:
定义创建对象并为这个对象分配内存,声明不分配内存。
9、说明位操作提高程序运行效率的原理
在计算机程序中,数据的位是可以操作的最小数据单位,理论上可以用“位运算”来完成所有的运算和操作。一般的位操作是用来控制硬件的,或者做数据变换使用,灵活的位操作可以有效地提高程序运行的效率。运用位操作需要注意的是,因为CPU的不同而产生的问题。比如说,在PC上用这招编写的程序,并在PC上调试通过,在移植到一个16位机平台上的时候,可能会产生代码隐患。所以只有在一定技术进阶的基础下才可以使用这招。
10、全局变量与局部变量的区别
作用域:全局变量的生存周期为整个工程文件,而局部变量在函数结束后就被释放
空间分配:未初始化的全局变量存放在用户空间的.bss数据段,初始化的全局变量存放在静态数据区,局部变量存放在栈空间
初始化:全局变量默认初始化为0,局部变量为随机值
- c语言知识总结2
- 面试:C语言C++小知识总结(2)
- C语言知识总结(一)
- c语言知识总结(一)
- C语言知识总结(二)
- C语言知识总结(三)
- C一些知识总结
- C一些知识总结
- keil c 知识总结
- c语言 知识总结
- keil c 知识总结
- C Assignment2 知识总结
- C语言知识总结
- C高级知识总结
- C语言知识总结
- C语言知识总结
- C语言知识总结
- C语言知识总结
- POJ 3692 Kindergarten(最大匹配+匈牙利算法+补图思想)
- Form-实验吧
- 内核源码阅读(一)进程
- Android学习(一)RelativeLayout布局属性
- js中浮点型运算
- c++知识总结(2)
- 7.deep learning
- Java中boolean类型占用多少个字节
- Java面试05|MySQL及InnoDB引擎
- C语言之进程控制(僵尸进程和守护进程)
- 正则中的text()、exec()、match()等的用方法
- java事件模型
- 设计简单的ArrayList集合功能
- Java面试07|Redis数据库