c++ 变量

基础变量

int 		整数类型
short		短整型
long		长整型
long long	长整型
float		单精度浮点型
double		多精度浮点型
long double	扩展精度浮点型
char		ascii字符类型
char*		相当于字符串类型
bool		布尔类型

在这里插入图片描述

注意点:
	1long long 是 c++11 支持的特性
	2、没有加 unsigned 的都是有符号数,加上为无符号数,区别是
	最高字节的最高位是否代表符号位、以及能表示的范围
	3、本质上类型表示的是一串地址空间的二进制串,不同类型只是
	编译器对于二进制串的解析不同
	3、字符串(char*)默认以 '\0' 结尾,使用 char* 需要手动
	添加最后的结尾标识符 '\0'
	4char* 是指向一片字符空间的变量,所以 char* a 中的 a
	是一个地址,访问里面的数据需要采用地址运算 [] 或者取地址
	内容符 *,例如 a[0]*a,前者是取第一个空间的字符,后者
	是从第一个空间开始,到碰到一个 '\0' 为止的串的整体
	5、数组的地址空间是连续的,char*的地址空间也是连续的,
	相当于一个字符数组

复杂变量

vector	向量
list	列表 
map		地图,存放键值对
set		集合
string	字符串
queue	队列
priority_queue	优先队列
stack	栈
pair	键值对,一个结构体
struct	结构体
class	类

向量:相当于一个动态的数组,存放类型不限,存放长度不限,在其内部实现
	的时候,如果大小不够,则会开辟一个双倍的空间,然后将数据拷贝过去
	并释放原空间
	
列表:采用链式结构,是一种双向链表,存放类型不限

地图:存放键值对,其中的键不能重复,内部实现采用哈希散列函数的方式

集合:类似于数学里面的集合的概念,存放的数据不能重复,可以实现自动去重

字符串:相当于封装好了的char*,只不过string是一个类,封装了对于数据的
	操作,而char*只是单纯的数据而已

队列:遵循先进先出的原则

优先队列:是一种可以自动排序的容器,有三个传入参数,分别是数据类型,存储
	数据的容器,以及进行数据比较的结构体。

栈:遵循先进后出的原则

结构体:结构体包含数据和数据的操作两部分,如果不加入 private 等权限设定
	关键字,那么默认的属性或者函数就是公有的,主学 c 的朋友有兴趣可以去
	了解了解结构体在内存中的存储方式。

类:类也和结构体相似,包含数据和数据的操作两部分,如果不加 private 等权限
	设定关键字,那么默认的属性或者是函数就是私有的,那么类在内存中是怎么
	存储的呢?

在这里插入图片描述

	类在内存中存储的时候,是将数据和代码分割开的,所有的类对象都共用一份
成员函数,这一份成员函数存储在代码区,当实例化一个类的实例的时候,由于
成员函数共享,所以实际上只是实例化了该实例所拥有的非静态成员变量,并将这个
变量存放到堆栈区,而静态变量则在编译器编译类的时候存放到了静态存储区,所以
平常所说的实例化,本质上只是产生一份非静态变量而已。

常量

字面值常量:
		默认的常量都是十进制的,如果在常量前面加数字0,则变为八进制,如果
	加0x,则变为十六进制,c++不存在二进制的数列串,要得到二进制只能对十进制
	数进行位级别上的操作得到。

在这里插入图片描述

自定义常量:
	
		常量在定义之后必须要有一个初始化值,并且在定义之后不可以进行修改,
	定义常量有两种方式:
		1const A = 0;	// 常量名字一般大写
		2、 #define A 0
		第一种方式只需要放到使用之前即可,第二种方式需要放到和 #include 
		同一级的位置上,例如
		
		#include <iostream>
		#define A 0
		using namespace std;
		int main()
		{
			return 0;
		}
	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值