我有一个数组,保存了一系列历史数值。当我添加新数值时,需要将之前所有数值左移一位,以舍弃最旧的数值并为下一个数值腾出空间。
我可以想到两种方法来实现这个过程,一种是使用memmove函数:
这两种方法之间是否存在性能差异,如果没有,哪种方法会被建议使用?
我可以想到两种方法来实现这个过程,一种是使用memmove函数:
memmove(&arr[0], &arr[1], sizeof(arr) - sizeof(*arr));
或通过交换指针:
for (i = 0; i != sizeof(arr) - 1; i++) {
*(arr + i) = *(arr + i + 1);
}
这两种方法之间是否存在性能差异,如果没有,哪种方法会被建议使用?
int head
索引并进行所有访问% arraySize
)。 - chrylis -cautiouslyoptimistic-