我需要一种尽可能有效的方法来转移数组的内容。我需要将每个数组位置的内容向右移动一个并忽略第一个,以便我可以在那里写入一个新值。
这是我所拥有的:
#define LENGTH 5
int myArray[LENGTH] = {1, 2, 3, 4, 5};
int *pa = myArray + (LENGTH - 1);
for (ushort i = 5; i > 0; i--) {
*pa = *(pa - 1);
pa--;
}
我想做的是将for
循环的两行组合成一个操作。就像是:
*pa = *(pa--);
然而,这个结果是不确定的。我是否坚持我已经在使用的东西?
编辑:我应该澄清这不是我正在使用的实际代码,只是一个演示我所追求的构造的快速示例。