C++中char * 和char []的区别 堆栈区别 JAVA的JVM的内存可分为3个区:堆(heap)、栈(stack)和方法区(method)

本文探讨了C++中char *与char []的区别,强调了堆栈管理的差异。在C++中,char *指向常量字符串,而char []可存储可修改的内容。此外,文章还介绍了JAVA的JVM内存模型,包括堆、栈和方法区的特性及其作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

 

C++中char * 和char []的区别

堆栈区别

JAVA的JVM的内存可分为3个区:堆(heap)、栈(stack)和方法区(method)


C++中char * 和char []的区别

在实习过程中发现了一个以前一直默认的错误,同样char *c = "abc"和char c[]="abc",

问题的实质在于栈与堆控制权的问题,

我们只能操作堆(heap):这样的好处是灵活性大,我们可以自由的定义,内存申请,写入,资源回收。

对于栈(stack)是:由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于

 

#include <iostream>
using namespace std;

main()
{
   char *c1 = "abc";
   char c2[] = "abc";
   char *c3 = ( char* )malloc(3);
   c3 = "abc";
   printf("%d %d %s\n",&c1,c1,c1);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZhangJiQun&MXP

等到80岁回首依旧年轻

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值