知识点11-15

学习目标

(1)数组名和指针的区别。

(2)堆和栈的区别。

(3)malloc和new的区别。

(4)struct和class在c++中的区别。

(5)c++中的类有几个访问权限。


一、数组和指针的区别

(1)数组是一个固定大小的连续内存块,可以存储相同类型的元素。

(2)数组名是该数组第一个元素的地址。

(3)数组名就是数组首元素的地址,也可以看作一个常量指针,这个指针是不能修改指向的。

(4)使用指针访问数组的时候需要使用到解引用*,指针访问数组是间接访问,数组名访问数组是直接访问。

(5)使用sizeof对指针进行计算的时候是不同的,指针的大小和编译器位数有关,使用sizeof计算数组名是整个数组的大小。

二、堆和栈区别

(1)创建方式不同:栈是系统自动创建,主要用于保存局部变量,当函数执行完成,栈被销毁;

堆是程序员手动进行创建和释放的,malloc进行创建,free进行释放。

(2)空间大小不同:栈空间比较小,堆空间比较大。

(3)访问速度不同:栈比堆块。

(4)生命周期不同:栈使用完后自动销毁,堆手动销毁。

三、malloc和new的区别

(1)malloc是c语言中标准库函数,new是c++中的操作。

(2)malloc分配内存后返回的是void * 类型的指针,new分配内存后返回的是对应对象类型的指针。

(3)malloc分配内存的时候需要进行指定分配内存的大小,使用new进行内存分配时不需要指定。

(4)使用malloc分配内存的时候不会调用到构造函数,使用new分配内存会调用到构造函数。

四、struct和class在c++中的区别

(1)struct成员默认是公有的,class成员默认是私有的。

(2)继承方面,struct是公有继承,class是私有继承。

(3)使用场景方面:struct一般是用于做简单的数据结构,class一般用于封装和继承。

五、c++中类有几个访问权限

(1)在c++中类有三个访问权限:公有的、私有的、受保护的。

(2)public:当成员声明为public,就可以在类的外部进行访问。

(3)private:当成员声明为private,只能在类的内部进行访问。

(4)protect:当成员声明为protect,只能在类的内部或是子类中进行访问。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值