C++ char* str与char str[]

本文介绍了C++中char* str与char str[]的差异。char* str分配的是常量字符串,存储在静态存储区,不可修改;而char str[]在栈上分配,是可修改的局部数组。通过程序员面试宝典中的例子,解释了为何使用char str[]在函数结束后会导致指针指向无效地址,从而出现乱码问题。
摘要由CSDN通过智能技术生成

在程序员面试宝典上看到这个两句话:

1、char c[]="hello world"是分配一个局部数组;

2、char *c="hello world"是分配一个全局数组;

最开始还以为是书上说错了,因为自己的理解是这两种方式是等效的。下来查了一下才知道这两种方式的区别。

char* str="hello world ";这个指针指向常量字符串,存储在静态存储区,是只读的,不能被修改。而char str[]="hello world"是一个局部变量数组,存储在栈上的内存空间,可以被修改。

拿程序员面试宝典上的例子来说:

<span style=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值