C语言基本理解

内存:

  • 静态全区 static 可修改
  • 常量区 const
  • 堆 new malloc alloc
  • 栈 函数内定义, 无需自己释放

指针:

  • 操作++: 移动指针所指类型大小
  • 引用: 别名, 必须赋值, 不独立分配空间

常量:

  • const int * const i_p
  • 常性可以改变

静态期: 编译阶段
动态期: 运行阶段

结构体:

struct StudentRecord {
....
};

StudentRecord stu; // 代表在栈上声明一个StudentRecord大小的空间
// stu.name

StudentRecord s1, s2;
s1 = s2; // 按位拷贝栈(浅拷贝, 若结构体有指针, 指针所指内容部拷贝)

StudentRecord *sptr; // 声明一个指针, 栈上只有一个地址大小
// sptr->name

C++

RTTI
const_cast(expression) 去掉常性 dynamic_cast(expression) static_cast(expression) 安全类型转换(替代强转) reinterpret_cast(expression) 转指针

代码段
数据段
堆栈段

下映射: 不安全
上映射: 安全

在虚表中, 虚函数次序和基类虚函数次序相关.
析构函数也存在虚表.



Previous     Next
ponxu /
Categories C  Tags C