c++中定义一个buff为unsigned char 型,如何初始化全为0

unsignedcharbuff2;for(inti=0;i<8;i++)buff2[i]='0';网上面这样初始化会出错,该如何改,望高手帮忙看一下~... unsigned char buff2;
for (int i=0;i<8;i++)
buff2[i]='0';
网上面这样初始化会出错,该如何改,望高手帮忙看一下~
展开
 我来答
lgao622
推荐于2016-08-20 · 知道合伙人软件行家
lgao622
知道合伙人软件行家
采纳数:1137 获赞数:6550
毕业于武汉工程大学邮电与信息工程学院通信专业,软件行业,4年工作经验。

向TA提问 私信TA
展开全部
  1. 直接这样定义 unsigned char buff[100] = {0}; 就行了。buff[0] 赋值为0,其他没赋值的则自动赋值为0.


  2. 如果是char数组,可以直接这样: char buff[100] = "";

bridgeaug
2008-11-18 · TA获得超过910个赞
知道答主
回答量:39
采纳率:100%
帮助的人:44.2万
展开全部
上面Jenghau的回答很清楚,你有两个问题:
1、首先你定义的不是字符数组而是单个字符,所以出错。
2、你初始化成'0'是字符0,ASCII是'0x30'不是真正的0,真正的0是'\0'

另外,我们一般用以下方法初始化数据到0,不用循环,循环比较慢。我们一般用:
memset((void*) buf, 0, sizeof(buf));
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
厉经浩星27
2008-11-18 · TA获得超过439个赞
知道小有建树答主
回答量:451
采纳率:0%
帮助的人:415万
展开全部
unsigned char buff2[8]; //定义的问题
for (int i=0;i<8;i++)
{
buff2[i]='0';//注意 这里是 字符'' 0 '' 。
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yifanernei
2008-11-18 · 超过24用户采纳过TA的回答
知道答主
回答量:65
采纳率:0%
帮助的人:64.1万
展开全部
buff2=0;即可
0既是二进制的00000000
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhaohui0923
2008-11-18 · TA获得超过207个赞
知道答主
回答量:97
采纳率:0%
帮助的人:0
展开全部
buff2声明为数组就ok
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式