```c
void swap(int *a, int *b)
{
int t = *a;
*a = *b, *b = t;
}
void moveZeroes(int *nums, int numsSize)
{
int left = 0, right = 0;
while (right < numsSize)
{
if (nums[right])
{
swap(nums + left, nums + right); //就是这行的nums+
left++;
}
right++;
}
}
```
此处是单独写nums是表示nums的首地址,nums + left是表示第left个元素的地址
nums + right同理
由于swap函数是通过两个参数的地址将这两个值互换,所以需要传入第left和第right个元素的地址