摘要:
程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。 3、全局区( 阅读全文
摘要:
此文章参考《深入理解计算机系统》P31。 先看如下代码: 12345的十六进制表示为:0x00003039 1 #include <stdio.h> 2 3 int main() 4 { 5 int a = 12345; 6 char *q = (char *)(&a); 7 for(int i = 阅读全文
摘要:
1 class Solution { 2 public: 3 vector<int> twoSum(vector<int>& nums, int target) { 4 vector<int> v; 5 for(int i = 0; i < nums.size(); ++i) 6 for(int j 阅读全文
摘要:
alias:给命令起别名 awk = "Aho Weiberger and Kernighan" ,三个作者的姓的第一个字母 bash:GNU Bourne-Again Shell,大多Linux的默认shell bc = Basic Calculator,基础计算器,scale设定小数位,quit 阅读全文
摘要:
本文转载自: https://www.cnblogs.com/alantu2018/p/8465884.html 递归与尾递归总结 1、递归 关于递归的概念,我们都不陌生。简单的来说递归就是一个函数直接或间接地调用自身,是为直接或间接递归。一般来说,递归需要有边界条件、递归前进段和递归返回段。当边界 阅读全文
摘要:
1.所谓的递归慢到底是什么原因呢? 大家都知道递归的实现是通过调用函数本身,函数调用的时候,每次调用时要做地址保存,参数传递等,这是通过一个递归工作栈实现的。具体是每次调用函数本身要保存的内容包括:局部变量、形参、调用函数地址、返回值。那么,如果递归调用N次,就要分配N*局部变量、N*形参、N*调用 阅读全文
摘要:
0. 属性 new/delete是C++关键字,需要编译器支持。malloc/free是库函数,需要头文件支持。 1. 参数 使用new操作符申请内存分配时无须指定内存块的大小,编译器会根据类型信息自行计算。而malloc则需要显式地指出所需内存的尺寸。 2. 返回类型 new操作符内存分配成功时, 阅读全文
摘要:
注意派生类构造函数的写法。 1 #include <iostream> 2 3 using namespace std; 4 5 enum COLOR { Red, Green, Blue, Yellow, White, Black, Brown }; 6 7 class Animal 8 { 9 阅读全文
摘要:
本文出自图书 > 深入理解C++11:C++ 11新特性解析与应用 3.3 右值引用:移动语义和完美转发 3.3.1指针成员与拷贝构造 对C++程序员来说,编写C++程序有一条必须注意的规则,就是在类中包含了一个指针成员的话,那么就要特别小心拷贝构造函数的编写,因为一不小心,就会出现内存泄露。 #i 阅读全文
摘要:
本文转载自:http://blog.51cto.com/9291927/2148695 总结: 一、成员函数的内存为什么不会反映在sizeof运算符上? 成员函数可以被看作是类作用域的全局函数, 不在对象分配的空间里, 只有虚函数才会在类对象里有一个指针, 存放虚函数的地址等相关信息(即虚函数表)。 阅读全文