Мне нужно как можно более эффективное средство для перемещения содержимого массива. Мне нужно сдвинуть содержимое каждого местоположения массива по одному вправо и игнорировать первое, чтобы я мог написать новое значение там.
Вот что у меня есть:
#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--);
Однако результат этого не определен. Я застрял с тем, что я уже использую?
РЕДАКТИРОВАТЬ: я должен был уточнить, что это не фактический код, который я использую, просто быстрый пример, чтобы продемонстрировать конструкцию, которую я был после.