摘要:
int *p = new float[2]; //编译错误(类型安全) int p = (int)malloc(2 * sizeof(double));//编译无错误 相同点: 都可用于内存的动态申请和释放 不同点: 前者是C++运算符(一般用于生成对象),后者是C/C++语言标准库函数 new自动 阅读全文
摘要:
int *p[10] int (*p)[10] int *p(int) int (*p)(int) int *p[10]表示指针数组,强调数组概念,是一个数组变量,数组大小为10,数组内每个元素都是指向int类型的指针变量。 int (*p)[10]表示数组指针,强调是指针,只有一个变量,是指针类型 阅读全文
摘要:
申请方式不同 栈由系统自动分配 堆是自己申请和释放的 申请大小限制不同 栈空间默认是4M, 堆区一般是 1G - 4G 申请效率不同 栈由系统分配,速度快,不会有碎片。 堆由程序员分配,速度慢,且会有碎片。 阅读全文
摘要:
指针是一个变量,存储的是一个地址,引用跟原来的变量实质上是同一个东西,是原变量的别名 指针可以有多级,引用只有一级 指针可以为空,引用不能为NULL且在定义时必须初始化 指针在初始化后可以改变指向,而引用在初始化之后不可再改变 sizeof指针得到的是本指针的大小,sizeof引用得到的是引用所指向 阅读全文
摘要:
main执行之前和之后执行的代码可能是什么? 执行之前: 主要用于初始化系统相关资源 设置栈指针 初始化静态变量和全局变量。.data段的内容 没有初始化的全局变量赋初始值 全局对象初始化 将main函数的参数传递给main函数,然后才真正运行main函数 attribute((constructo 阅读全文