Code Bye

写个新数据写入数组的0位置,老数据向后推移一位

 

void Update( INT Peak )
{
INT i = 0;
while (i<40)
{
g_peak[i+1] = g_peak[i];
i++;
}
g_peak[0] = Peak;
}
代码如下,39的数组g_peak 比如 [1 2 3 4 5 6 7 8 9 10…. ]读入20变成 [20 1 2 3 4 5 6 7 8 9 10….]
但是我写的这个没法实现功能,请教下

5分
1 2 3
指向你的 i+1 = i
变成 
1 1 3
再执行 i+i = i
变成 
1 1 1 
当然不行了 
从后向前 i-1 = i
5分
从0到39循环是不行的,得反过来,从39到0才可以
10分
你一看就应该明白啊。
while (i<40)
{
g_peak[i+1] = g_peak[i];
i++;
}
这样后面的元素都被覆盖了。
应该
i = 39;
while(i>=0)
{
g_peak[i] = g_peak[i-1];
i–;
}
谢谢各位,明白了

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明写个新数据写入数组的0位置,老数据向后推移一位