将缓冲区移到左侧,在LED面板上滚动一个字符串?

NLe*_*Led 1 c arrays buffer text scroll

我有一个我不太懂的功能

从0到110有109个地址.

这段代码如何将文本向左移动?

b=0;
while(b<109)
{
  Display_Buffer[b] = Display_Buffer[b+1];
  b++;
}
Run Code Online (Sandbox Code Playgroud)

如果b从0开始,那么b + 1应该将文本滚动到右边而不是??? 或者我错了?因为在0,b + 1表示地址是1,如果它是b-1,那么地址应该是110(因此向左滚动)......但不是这里的情况,有人可以提供粗略的解释吗?

display_buffer包含存储在其数组中的字符串信息.

-

编辑

多谢你们 !!如果我用[b-1]替换Display_Buffer [b + 1] ...会反转这个过程怎么办?怎么样 ?

好吧,我意识到我必须添加b = 109和while(b!= 0)..否则就没有意义了.

但是,如果Display_Buffer [109] = Display_Buffer [108],这是否意味着它会产生与你们回答的相同的效果,但相反?

unw*_*ind 5

每个位置都分配了右侧位置的值,因此效果是向左滚动.

考虑这个令人敬畏的ASCII艺术:

         0  1  2  3  4
Before: [h][e][l][l][o]
 After: [e][l][l][o][ ]

位置0的槽位设置为槽1的值,因此'h'变为'e',依此类推.