C++开发
文章平均质量分 55
coder凯
学习C ,Linux
展开
-
typedef与#define的用法及区别
陷阱一: 记住,typedef是定义了一种类型的新别名,不同于宏,它不是简单的字符串替换。比如: 先定义:typedef char* PSTR; 然后: int mystrcmp(const PSTR, const PSTR); const PSTR实际上相当于const char吗?不是的,它实际上相当于char const。 原因在于const给予了整个指针本身以常量性,也就是形成了常量指针char* const。 简单来说,记住当const和typedef一起出现时,typ原创 2021-08-27 10:51:25 · 105 阅读 · 0 评论 -
C++程序内存模型——内存四区
1 内存分区模型 1)代码区:存放函数体的二进制代码,由操作系统进行管理的。 2)全局区:存放全局变量和静态变量以及常量。 3)栈区:由编译器自动分配释放,存放函数的参数值,局部变量等。 4)堆区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收。 内存分区意义: 不同区域存放的数据,赋予不同的生命周期,给我们更大的灵活编程。 1.1 程序运行前 在程序编译后,生成了exe可执行程序,未执行该程序前分为两个区域。 代码区:存放CPU执行的机器指令。 代码区是共享的,共享的目的是对于频繁被执行的程原创 2021-04-14 21:35:38 · 91 阅读 · 0 评论 -
C++面向对象#重载运算符和重载函数
运算符重载: 如果不做特殊处理,C++ 的 +、-、*、/ 等运算符只能用于对基本类型的常量或变量进行运算,不能用于对象之间的运算。有时希望对象之间也能用这些运算符进行运算,以达到使程序更简洁、易懂的目的。利用 C++ 提供的“运算符重载”机制,赋予运算符新的功能,就能解决用+将两个复数对象相加这样的问题。 1、概要:运算符重载,就是对已有的运算符赋予多重含义,使同一运算符作用于不同类型的数据时产生不同的行为。 2、作用:使得 C++ 中的运算符也能够用来操作对象。 3、实质:编写以运算符作为名称的函数,也原创 2021-04-13 21:57:22 · 108 阅读 · 0 评论