程序设计基础及数据结构基础
来源:互联网 发布:ios11 蜂窝移动网络 编辑:程序博客网 时间:2024/06/05 02:15
基本概念
C++内置类型
内置的C++类型分两组,基本类型和复合类型。基本类型包括整数、浮点数及两者的多种变体。复合类型包括数组、字符串、指针、引用、结构体和共用体等。C++的基本整型
按宽度递增的顺序排列,分别是char、short(也可称为短整型)、int(也可称为整型)和long(也可称为长整型),其中每种类型都有无符号版本和有符号版本。内存分区
1)堆:由程序员手动分配和释放,完全不同于数据结构中的堆,分配方式类似链表。由malloc(C语言)或new(C++)来分配,free(C语言)和delete(C++)释放,程序结束时由系统释放。
2)栈:由编译器自动分配和释放的,存放函数的参数值,局部变量的值等。操作方式类似数据结构中的栈。
3)全局(静态)存储区:存放全局变量和静态变量。包括DATA段(全局初始化区)与BSS段(全局未初始化区)。其中,初始化的全局变量和静态变量存放在DATA段,未初始化的全局变量和未初始化的静态变量存放在BSS段。程序结束后由系统释放。
4)文字常量区:常量字符串就是在这里的。程序结束后由系统释放。
5)程序代码区:存放函数体的二进制代码。
#include <stdio.h>#include <stdlib.h>int k = 1;int main(){ int i = 1; char *j; static int m = 1; char *n = "hello"; /* 变量n位于栈上,其内容为一地址,指向位于文字常量区的"hello", 此时"hello"在内存中只有一份拷贝;而语句"char a[]="hello";则不同, a是一个位于栈上的有6个元素(含字符串末尾的空字符串末尾的空字符)的数组,并 将"hello"拷贝到它所在的内存中,此时"hello"有两份拷贝 */ printf("栈区的地址为:0X%x\n",&i); j = (char *)malloc(2); free(j); printf("堆区地址为:0X%x\n",j); printf("全局变量地址为:0X%x\n",&k); printf("静态变量地址为:0X%x\n",&m); printf("文字常量区地址为:0X%x\n",n); printf("程序区地址为:0X%x\n",&main);}
阅读全文
0 0
- 程序设计基础及数据结构基础
- Python程序设计基础 数据结构与算法习题
- [Java基础巩固](0) --- 程序设计基础和基本数据结构, 算法
- 程序设计基础
- 程序设计基础
- 程序设计基础
- 程序设计基础
- 程序设计基础
- 程序设计基础
- 程序设计基础
- 程序设计基础
- 程序设计基础
- 程序设计基础
- 程序设计基础
- 程序设计基础
- 程序设计基础
- 程序设计基础
- 程序设计基础
- Linux防火墙配置
- Java用享元模式优化程序性能
- Ubuntu 16.04 apt-get更换为国内阿里云源
- 利用fiddler做mock
- CAD绘图控件VectorDraw web library (javascript)更新至v7.7014.0.2
- 程序设计基础及数据结构基础
- JS变量和数据类型
- poj1703——Find them, Catch them
- Liferay开发过程中的一些常见问题
- 使用AOP实现iOS应用内的埋点计数
- VS2017入门 打包
- SQL中not in的陷阱,有null记录的时候一不小心就踩中了
- 关于git分支
- spring配置事务管理