- 博客(6)
- 收藏
- 关注
原创 操作系统中程序的内存结构
操作系统从低地址到高地址分别为正文段(代码区)、已初始化数据区、BSS(未初始化)、堆、栈。 正文段主要存储机器指令即执行代码。这部分区域的大小在程序运行前就已经确定,并且这个区域只读。 已初始化数据区为数据分配内存空间并保存到目标文件。 BSS(未初始化数据)没有存放在磁盘程序文件。应为它们运行前初始值为0。正文段和已初始化数据存放在目标文件中。 堆区用于动态分配内存,位于BSS和栈中间的区域。采用链式存储,频繁的malloc()和free()导致其效率比栈低。 ...
2020-09-12 14:54:40
494
原创 指针
指针 1.指针本身就是一个对象,允许指针之间的拷贝和赋值,也可以在其生命周期指向不同的对象,而引用不行。引用类型的初始值必须是个对象,且定义时必须初始化。当然指针类型也需要和匹配对象类型严格吻合。 2.指针无需在定义时赋值。 3.判定指针是否指向一个合法对象,需要知道指针是否有效。 指向指针的指针 **表示指向指针的指针,3个*表示指向指针的指针的指针,以此类推。 int i=1024; int ...
2020-07-04 13:33:52
258
原创 static的作用
说一说static关键字 的作用 1.全局静态变量 在全局变量前加上static,定义为全局静态变量,存储在静态存储区。正常情况下,未初始化的全局静态变量初始化为0,除声明它的文件外不可用。 2.局部静态变量 局部静态变量与全局相似,只不过作用域变小,即适用于某个定义它的函数或语句。二次调用函数时,静态变量的值不变。 3.静态函数 在函数返回类型前加上static即为静态函数。函数的定义和声明在默认情况下都是extern的,但静态函数只是在声明他的文件当中可见,不能被其他文件所用。 定义的静态函数只能在本c
2020-07-04 13:32:28
138
原创 const限定符
const 有时想定义一个变量,它的值不能被改变。列如,用一个变量来表示缓冲区的大小,这时我们就可以用const来定义。 const int bufSize=512; bufSize=512;//错误:试图向const对象写值 初始化和const const用在变量定义时的类型前表示该变量不可改变,注意:该变量必须初始化(可以在运行时初始化)。 默认状态下,const对象仅在文件内有效。如果想在...
2020-07-04 13:03:56
298
原创 C++处理类型
定义类型别名 分两种:typedef和using 列如:typedef int aaa;//aaa为int的类别名,如aaa i=0; using bbb=float;//bbb i=0.1; auto类型说明符 它能让编译器替我们去分析表达式所属的类型 decltype类型指示符 作用:选择并返回操作数的数据类型。 decltype((v))双层括号永远是引用,而decltype(v)单层括号...
2020-07-04 13:03:38
102
原创 C风格字符串
C风格字符串的函数 strlen(s) 返回s的长度,空字符串不计算在内 strcmp(s1,s2) 比较两个字符串的相等性,相等返回0,大于返回正值,小于则返回负值 strcat(s1,s2) 将s2附加到s1之后,返回s1 strcpy(s1,s2) 将s2拷贝给s1,返回s1 ...
2020-07-04 13:02:59
108
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人