交换两个数组
将两个整形变量进行交换可引入第三个变量,数组的交换也可以这样做:
int main()
{
int arr1[] = {1,2,3};//定义两个数组
int arr2[] = {2,3,4};
int i = 0;
int tmp[] = {0};//定义第三个数组用于交换
for(i=0; i<sizeof(arr1)/sizeof(arr1[0]); i++)//"sizeof(arr1)/sizeof(arr1[0])"用于求数组元素个数
{
printf("%d ",arr1[i]);//数组只能一个一个输出,循环打印
}
printf("\n");
for(i=0; i<sizeof(arr1)/sizeof(arr1[0]); i++)
{
printf("%d ",arr2[i]);
}
printf("\n********************\n");
for(i=0; i<sizeof(arr1)/sizeof(arr1[0]); i++)
{
tmp[i] = arr1[i];//数组1的内容一个一个送给数组tmp
arr1[i] = arr2[i];//数组2的内容一个个送给数组1
arr2[i] = tmp[i];//数组tmp的内容送给数组2,这就完成了两个数组内容的交换
}
for(i=0; i<sizeof(arr1)/sizeof(arr1[0]); i++)
{
printf("%d ",arr1[i]);
}
printf("\n");
for(i=0; i<sizeof(arr1)/sizeof(arr1[0]); i++)
{
printf("%d ",arr2[i]);
}
return 0;
}
- sizeof(arr1)/sizeof(arr1[0])
- sizeof是C/C++中的一个操作符(operator),简单的说其作用就是返回一个对象或者类型所占的内存字节数。
- 用整个数组所占空间除第一个元素所占的空间,结果就是数组元素的个数。