C++基础语法

95272021-12-07 11:55

  正如谭先生所说,C是一种结构化语言:它的重点是算法和数据结构。C程序的设计首先考虑的是如何通过计算输入(或环境条件)来获得输出(或实现过程(事务)控制)。对于C++,首先考虑的是如何构建对象模型,使该模型能够满足相应的问题域,从而通过获取对象的状态信息来获得输出或实现过程(事务)控制。

C++基础语法

  内存,栈,堆。

  一般应用程序的内存空间如下:

  栈:由操作系统自动分配释放,存储函数参数值、局部变量等值,用于维护函数调用的上下文。

  堆:一般由程序员分配释放,如果程序员不释放,程序结束时可由操作系统回收,以容纳应用程序动态分配的内存区域。

  可执行文件图像:存储可执行文件在内存中的图像,由装载器装载,读取或映射可执行文件的内存。

  保留区:保留区不是一个单一的内存区,而是保护内存并禁止访问的内存区的总称。例如,C语言无效指针通常为0(NULL),因此0地址在正常情况下不可能有效访问数据。

  栈

  栈保存了函数调用所需的维护信息,通常称为堆栈帧(StackFrame)或活动记录(ActivateRecord),一般包括以下几个方面:

  函数的返回地址和参数。

  临时变量:包括函数的非静态局部变量和编译器自动生成的其他临时变量。

  保存上下文:包括函数调用前后需要保持不变的寄存器。

  堆

  堆分配算法:

  空闲链表(Freelist)

  位图(Bitmap)

  对象池

  段错误(segmentfault)或非法操作,内存地址不能read/write

  非法指针解引引引起的典型错误。当指针指向不允许读写的内存地址,而程序试图用指针读写地址时,就会出现这个错误。

  普遍原因:

  将指针初始化为NULL,然后开始使用指针而不给它一个合理的值。

  没有初始化栈中的指针,指针的值一般是随机数,然后直接开始使用指针。

  以上就是小编为大家整理发布的“C++基础语法”一文,更多相关内容尽在开课吧C++教程频道。

免责声明:本站所提供的内容均来源于网友提供或网络搜集,由本站编辑整理,仅供个人研究、交流学习使用。如涉及版权问题,请联系本站管理员予以更改或删除。
有用
分享