C++字符数组初始化,第一个字符赋值为0,了解一下下面的value值以及和filename[0]=

C++字符数组初始化,第一个字符赋值为0,了解一下下面的value值以及和filename[0]=NULL的区别,谢谢啦~... C++字符数组初始化,第一个字符赋值为0,了解一下下面的value值以及和filename[0]=NULL的区别,谢谢啦~ 展开
 我来答
和蔼的FlayCat
2015-09-21 · 超过55用户采纳过TA的回答
知道答主
回答量:90
采纳率:0%
帮助的人:74.2万
展开全部
NULL 不能赋值给 char 数组,因为 NULL 在 C++ 里面被定义为 (LPVOID)0,是一个指向进程虚拟空间中受保护的区域;第一个字符赋值为 0 是为了防止标准 C++ 库的字符串函数计算字符串长度时出错;正确的初始化方法应该是 char string[ n ] = { 0 };其中 n 是你的字符串长度,这样子编译器会自动帮你把整个数组清空为 0,而 string[ 0 ] = 0 只会把第一个元素清零,其余元素的指随机;
追问
非常感谢~
hai6606_cn
推荐于2016-11-27 · TA获得超过452个赞
知道小有建树答主
回答量:305
采纳率:0%
帮助的人:176万
展开全部
根据NULL的定义(#define NULL 0),所以NULL与0是等价的。
根据字符串的定义(遇0结束),所以第一个字符赋0表示将字符串置空Filename为""
更多追问追答
追问
‘\0`和0一样吗。
追答
也是一样的
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式