C语言中,如何将一个64单元的数组分成8个8单元的数组?

有这样一段代码://字节转换成二进制intByteToBit(charch,charbit[8]){intcnt;for(cnt=0;cnt<8;cnt++){*(bit... 有这样一段代码:
//字节转换成二进制
int ByteToBit(char ch, char bit[8]){
int cnt;
for(cnt = 0;cnt < 8; cnt++){
*(bit+cnt) = (ch>>cnt)&1;
}
return 0;
}
//将长度为8的字符串转为二进制位串
int Char8ToBit64(char ch[8],char bit[64]){
int cnt;
for(cnt = 0; cnt < 8; cnt++){
ByteToBit(*(ch+cnt),bit+(cnt<<3));
}
return 0;
}

这里的ByteToBit(*(ch+cnt),bit+(cnt<<3)); ,bit+(cnt<<3)是什么意思?做参数应该传入一个8单元的数组,这里 bit+(cnt<<3是一个8个单元的数组吗?
求解~~
展开
 我来答
柠檬VS芦苇
2016-11-11 · 超过57用户采纳过TA的回答
知道小有建树答主
回答量:214
采纳率:0%
帮助的人:29万
展开全部
ByteToBit(*(ch+cnt),bit+(cnt<<3)); //这个是调用函数。*(ch+cnt)作为参数传入的是(ch+cnt)地址下的内容。*(ch+cnt)表示的是一个值。
bit+(cnt<<3)是左移三位,是位运算。
追问
*(ch+cnt)这个我知道,就是想问下bit+(cnt<<3)这个做参数传入的是一个地址吧?
追答
是,因为bit就是指数组的地址,那数组基地址加数值表示地址的移动。所以bit+(cnt<<3)表示的是地址。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式