int *shiftRmemmove(int *arr, size_t size)\n{\n if(arr && size)\n {\n memmove(arr + size - 1, arr + size - 2, (size - 1) *sizeof(*arr));\n arr[0] = 0;\n }\n return arr;\n}\nRun Code Online (Sandbox Code Playgroud)\n是否定义为size == 1?它正在计算并传递对第一个元素之前的数组元素的引用。它相当于:memove(arr, arr -1, 0); (\xc2\xa9Jabberwocky)