C++11其实主要就四方面内容,第一个是可变参数模板,第二个是右值引用,第三个是智能指针,第四个是内存模型(Memory Model)。相对来说,这也是较难理解的几个特性,分别针对于泛型编程,内存优化,内存管理和并发编程。
最近应邀在牛客网写 C++ 求职专栏,又把以前的秋招总结补充了很多东西,现在想想还是发出来,希望能够帮助更多的新手小伙伴们。
为什么要学习C/C++/object-c?如何学习C/C++?本文简单整理了一些C++图书列表,按顺序阅读,可涵盖入门到精通。
我们经常会讨论这样的问题:什么时候数据存储在堆栈 (Stack) 中,什么时候数据存储在堆 (Heap) 中。我们知道,局部变量是存储在堆栈中的;debug 时,查看堆栈可以知道函数的调用顺序;函数调用时传递参数,事实上是把参数压入堆栈,听起来,堆栈象一个大杂烩。那么,堆栈 (Stack) 到底是如何工作的呢?本文将详解 C/C++ 堆栈的工作机制。
你是否也听过类似的话语?我听说过无数次,有些是面对面的交谈,而有些来自某个论坛。虽然答案无非是“取决于具体情况”,但以我的拙见,学习C编程是非常宝贵的经验。我想通过这篇短文向你展示C伟大的一面。
缓冲区溢出非常危险,因为栈空间内保存了函数的返回地址。该地址保存了函数调用结束后后续执行的指令的位置,对于计算机安全来说,该信息是很敏感的。如果有人恶意修改了这个返回地址,并使该返回地址指向了一个新的代码位置,程序便能从其它位置继续执行。实际上很多程序都会接受用户的外界输入,尤其是当函数内的一个数组缓冲区接受用户输入的时候,一旦程序代码未对输入的长度进行合法性检查的话,缓冲区溢出便有可能触发!本文主要介绍栈溢出的相关知识与保护措施,文章较长,建议先码后看。
树是数据结构中的重中之重,尤其以各类二叉树为学习的难点。在面试环节中,二叉树也是必考的模块。本文主要讲二叉树操作的相关知识,梳理面试常考的内容。请大家跟随小编一起来复习吧。
所谓的数组越界,简单地讲就是指数组下标变量的取值超过了初始定义时的大小,导致对数组元素的访问出现在数组的范围之外,这类错误也是 C 语言程序中最常见的错误之一。在C语言中,数组必须是静态的。换而言之,数组的大小必须在程序运行前就确定下来。