C++基本概念
2016-04-14 15:07
232 查看
1.C++内置类型
内置的C++类型分两组,基本类型和复合类型。基本类型包括整数、浮点数及两者的多种变体。复合类型包括数组、字符串、指针、引用、结构体和共用体等。
2.C++的基本类型
按宽度递增的顺序排列,分别是char、short(也称为短整型)、int(整型)和long(长整型),每一种类型都有无符号和有符号
3.内存分区
1)堆:由程序员手动分配和释放,完全不同于数据结构中堆,分配方式类似于链表。由malloc(C语言)或者new(C++)来分配,free(C语言)和delete(C++)释放,若程序员不释放,程序结束时由系统释放。
2)栈:由编译器自动分配和释放的,存放函数的参数值、局部变量的值等。操作方式类似数据结构中的栈。
3)全局(静态)存储区:存放全局变量和静态变量。包括DATA段(全局初始化区)BSS段(全局未初始化)。其中,初始化的全局变量和静态变量存放在DATA段,未初始化的全局变量和静态变量存放在BSS段。程序结束后由系统释放。其中BSS段的特点是:在程序执行之前BSS会自动清0.所以,未初始化的全局变量与静态变量在程序执行之前已经为0
4)文字常量区:常量字符串就是放在这里的。程序结束后由系统释放。
5)程序代码区:存放函数体的二进制代码。
内置的C++类型分两组,基本类型和复合类型。基本类型包括整数、浮点数及两者的多种变体。复合类型包括数组、字符串、指针、引用、结构体和共用体等。
2.C++的基本类型
按宽度递增的顺序排列,分别是char、short(也称为短整型)、int(整型)和long(长整型),每一种类型都有无符号和有符号
3.内存分区
1)堆:由程序员手动分配和释放,完全不同于数据结构中堆,分配方式类似于链表。由malloc(C语言)或者new(C++)来分配,free(C语言)和delete(C++)释放,若程序员不释放,程序结束时由系统释放。
2)栈:由编译器自动分配和释放的,存放函数的参数值、局部变量的值等。操作方式类似数据结构中的栈。
3)全局(静态)存储区:存放全局变量和静态变量。包括DATA段(全局初始化区)BSS段(全局未初始化)。其中,初始化的全局变量和静态变量存放在DATA段,未初始化的全局变量和静态变量存放在BSS段。程序结束后由系统释放。其中BSS段的特点是:在程序执行之前BSS会自动清0.所以,未初始化的全局变量与静态变量在程序执行之前已经为0
4)文字常量区:常量字符串就是放在这里的。程序结束后由系统释放。
5)程序代码区:存放函数体的二进制代码。
#include<iostream> using namespace std; int k=1; int main(){ int i=1,i1=1; char *j; static int m=1; char *n="hello"; j=new char[2]; delete(j); cout<<"堆区地址为:"<<&j<<endl; cout<<"栈区地址为:"<<&i<<endl; cout<<"栈区地址为:"<<&i1<<endl; cout<<"全局变量地址为:"<<&k<<endl; cout<<"静态变量地址为:"<<&m<<endl; cout<<"文字常量区地址为:"<<&n<<endl; cout<<"程序代码区为"<<&main<<endl; return 0; }
相关文章推荐
- C++ Q&A(六)构造函数的常见问题
- 大规模数据处理Bloom Filter C++代码实现
- C语言中输入包含空格字符串的两种方法
- C++里的继承和多态(中)――分析单继承、多继承、菱形继承(不含虚函数)
- C++Builder使用小窍门
- ubuntu下C++多线程编程(cmake生成makefile)
- C++ char * char string 转换
- C++ Q&A(五) 再论new操作符
- c++与asm混合编程例子
- C++Q&A(二) 变长数组和变长结构体是什么
- C++标准里 string和wstring
- C++枚举类型
- C++开发环境、库、常用工具(转载
- C++vector方法详解
- 快速幂
- 欧拉回路
- 值得推荐的C/C++框架和库
- 在windows上搭建C语言开发环境——借助eclipse和MinGW
- c++ chrono 时间程序库
- C语言数组遍历