C++primer学习笔记(6)

1、再用new动态的申请一块内存并把首地址赋值给指针之后,如果该块内存不在需要,则用delete来回收内存,否则则有可能发生内存泄露事件。

并且delete只能对new的地址和空指针使用,其他的一切都是错误的。并且不要用delete释放一块内存两次,那样会发生意想不到的结果。

delete作用的是地址而不是指针。

2、静态连编指的是在程序的编译阶段为变量,数组等数据对象分配空间,不管在程序中是否能用得到,而像new malloc这样的函数,在程序运行的时候动态的申请内存空间,为数据对象分配这些内存空间,并且可以随时更改数据对象的长度大小,所以就叫做动态联遍。


3、指向数组第一个元素的指针,也就是数组的首地址,也就是数组名。也可以说数组名= 数组首地址,用new分配的动态数组可以用接受地址的指针作为数组名使用。

4、指向数组的指针虽然和数组名有着相同的用处,但是他们是不同的。比如变量名是常量是不能改变的,但是指针值是可以所算数运算的。在指针+1或者-1的时候,前进和倒退的字节数并不一定是1,而是由指针指向的数据对象的类型来决定的。

数组名也就是数组第一个元素的地址,也就是这一段内存空间的首地址。

普通的变量都是在栈中申请内存空间,但是new是在堆中申请空间。


可以直接将数组名赋值给指针,也可以判断数组名和第一个数组元素取得地址是相等的。

5、

数组名和指向数组指针的区别:
a,数组名是常量,指针是变量;

b,sizeof作用于数组求的是数组的长度,作用于指向数组的指针,求的是指针的长度。

6、数组名和对数组名取地址,两者在数值上相等,但是在意义上不同,前面的一个是数组第一个元素的首地址,但是后面的是整个数组的首地址,以至于在指针运算的时候,二者都加一,得到的结果是截然不同的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值