C/C++
Mark@北京
这个作者很懒,什么都没留下…
展开
-
拷贝构造函数与赋值运算符
拷贝构造函数和赋值运算符默认拷贝构造函数和赋值运算符函数在默认情况下(用户没有定义,但是也没有显式的删除),编译器会自动的隐式生成一个拷贝构造函数和赋值运算符函数(缺省的)。禁止拷贝和赋值使用delete来指定不生成拷贝构造函数和赋值运算符,这样的对象就不能通过值传递,也不能进行赋值运算。class Person{ public: ... Person(const Person& p) = delete; Person& operator=(co原创 2020-05-29 08:47:20 · 863 阅读 · 0 评论 -
C程序内存分配
APUE中的一个典型C内存空间分布名称内容栈局部变量、函数参数、局部常量堆动态内存分配DATA段已初始化全局变量、已初始化全局静态变量、已初始化局部静态变量BSS段未初始化全局变量,未初始化全局静态变量文字常量区字符串常量、全局const常量代码段可执行代码简介栈(stack):存放函数的参数值、返回值、局部变量的值,以及在进行任务切换时存放当前任务的上下文内容。堆(heap):用于动态内存分配,即使用malloc/free系列函原创 2020-05-25 20:02:38 · 279 阅读 · 0 评论 -
const和static的用法
const 用法const 修饰局部变量// 等效的写法const int n = 1; // n 必须初始化int const n = 1; // n 必须初始化const 修饰常量静态字符串const char* str="fdsafdsa";如果没有const的修饰,我们可能会在后面有意无意的写str[4]=’x’这样的语句,这样会导致对只读内存区域的赋值,然后程序会立刻异常终止。有了const,这个错误就能在程序被编译的时候就立即检查出来,这就是const的好处。让逻辑错误在编译原创 2020-05-25 00:23:51 · 1017 阅读 · 0 评论