指针和引用的区别,堆和栈的区别

指针与引用的区别及堆栈对比
本文详细解析了C++中指针与引用之间的关键区别,包括空值允许情况、指向改变能力、sizeof运算符的行为差异以及安全性考量。同时,文章也探讨了堆与栈的主要区别,如内存分配方式、空间大小、程序调用参数传递等。

指针和引用的区别

1,引用不可以为空,指针可以为空。
2,引用不可以改变指向,指针可以改变指向。虽然引用不可以改变指向,但是可以改变初始化的内容;
3,sizeof()操作引用得到的是所指向变量的大小,而sizeof()指针,得到的是指针本身的大小,即4个字节;
4,引用比指针更安全,在使用引用前不需要测试它的合法性。而指针则总是被测试,防止为空。

堆和栈的区别

简述为:
1.stack栈的空间由操作系统自动分配或者释放,heap堆上的空间手动分配或者释放;
2,栈的空间有限,堆是很大的自由存储区;
3,malloc函数和new 操作符,分配的空间都在堆上;
4,程序在编译器对变量和函数的分配都在栈上,而且程序运行过程中函数调用时参数的传递也在栈上进行;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值