2-数据类型

  • 内置数组数据类型

在内置数据类型与标准库类的类型之间是复合类型,特别是指针和数组类型。
数组(array)是一种顺序容器,它包含单一类型的元素。
虽然C++对数组类型提供了内置支持,但是这种支持仅限于“用来读写单个元素”的机制。C++不支持数组的抽象(abstraction),也不支持对整个数组的操作。


  • 动态内存分配和指针

在C++中,对象可以 静态分配——即编译器在处理程序源代码时分配,也可以 动态分配——即程序执行时调用运行时刻库函数来分配。这两种内存分配方法的主要区别是效率和灵活性之间的平衡准则不同。
C++支持指针类型来存放对象的内存地址值。例如,为了声明一个能存放ival内存地址的指针类型,可以这样写:
int *pint
//一个指向int类型的指针

C++预定义了一个专门的取地址操作符(&)。当我们把它应用在一个对象上时,返回的是对象的地址值。因此,为了将ival内存地址值赋给pint,可以这样写

int *pint;
pint = &ival;//把ival的地址赋给pint

为了访问pint所指向的实际对象,必须先用解引用(dereference)操作符(*)来解除pint的引用,例如通过pint间接地给ival加1

*pint = *pint + 1;//通过pint间接地给ival加1.

在C++中,指针的主要用处是管理和操纵动态分配的内存。
静态与动态内存分配的两个重要区别:
1 . 静态对象是有名字的变量,可以直接对其进行操作。而动态对象是没有名字的变量,通过指针间接地对它进行操作。
2. 静态对象的分配与释放由编译器自动处理。相反,动态对象的分配管理与释放,必须由程序员显示地管理,通过new和delete两个表达式来完成。

int *pint = new int(1024);//分配特定类型的单个对象
delete pint;//删除单个对象
int *pia = new int[4];//分配特定类型和维数的数组
delete [] pia;//删除一个对象数组

如果忘记删除动态分配内存,程序就会在结束时出现内存泄漏的问题。内存泄漏是指一块动态分配的内存,我们不再拥有指向这块内存的指针,因此没有办法将它返还给程序供以后重新使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值