#include<stdio.h>
//将内存里面的数据进行移动
void move_buf(int *source, int *dest, int len)
{
//先判断源和目的地址是否有交集
if (source + len > dest)
{
while (len--)
{
dest[len] = source[len]; //则从后往前进行复制,防止改变前面有交集的部分
}
}
else //没有交集时,则从头开始复制
{
while (len--)
{
*dest++ = *source++;
}
}
}
int main()
{
int num[10] = { 1,2,3,4,5,6,7,8,9,10 };
move_buf(&num[3], &num[7], 2);
int i = 0;
for (i = 0; i++; i < 10)
{
printf("%d", num[i]);
}
system("pause");
}
#include<stdio.h>
//将内存里面的数据进行交换,len长度的头变成尾,尾变成头
void swap_buf(int *source,int len)
{
int temp_data = 0;//临时数据,用来存放数据交换时的临时数据。
int i;
for (i = 0; i < len / 2; i++)
{
temp_data = source[i];
source[i] = source[len - i-1];
source[len - i - 1] = temp_data;
}
}
int main()
{
int num[10] = { 1,2,3,4,5,6,7,8,9,10 };
swap_buf(&num[7], 2);
int i = 0;
for (i = 7; i++; i < 10)
{
printf("%d", num[i]);
}
system("pause");
}