《王道程序员求职宝典》笔记 - 第1章 数组
by 宋强
内存分区
- RAM
- 堆:mallc与new分配,free与delete释放的动态内存区。
- 栈:局部变量,返回值盒参数值使用的区。
- 全局存储区:全局变量与静态变量的存储区,分DATA和BSS,DATA段有默认值,而BSS不占内存,初始化为0
- ROM
- 文字常量区: 常量与字符串常量存储的位置
- 程序代码区: 程序代码存储的位置
C风格字符串的特征 指向一个字符以上并且以NULL结尾的数组都是C风格字符串。
变量默认值 全局变量的初始值默认为0,局部变量若声明为static则为0,否则为垃圾值,数组若有一部分给了初始值剩下的都会被初始化为0。
声明高维数组时可以省略的参数 如果给所有元素都有赋值,则可以省略第一维维数,但是其他的元素都不可以省略。
例如:
int a[2][3] = {1, 2, 3, 4, 5, 6};
int a[][3] = {1, 2, 3, 4, 5, 6}; //等价
C++中的数组默认采用行优先存储。P8例4
指针数组与数组指针
- 指针数组:int *a[10];
- 数组指针:int (*a)[10];
如此写法的根本原因在于*与()的优先级问题。
高维数组名是低维数组指针 也就是二位数组的名是一个一位数组的数组指针
例如:
int a[4][10];
int (*p)[10]; //p和a的类型相同。
顺序表与线性表
- 线性表:逻辑结构,表示元素是一一相邻的。
- 顺序表:和链表相对的物理存储结构,元素在内存中顺序排列。
习题
待补充
tags: c++ - 笔试