**创建一个数组,
实现函数init()初始化数组、
实现empty()清空数组、
实现reverse()函数完成数组元素的逆置。
要求:自己设计函数的参数,返回值。 **
传参时,会发生数据拷贝,
为了减轻在数组传参过程的的硬拷贝,
所以在数组传参时,会将数组的地址传入;
因此数组在传参时,要发生降维,降维成指向数组内部元素类型的指针,
#include<stdio.h>
#include<windows.h>
#pragma warning (disable:4996)
void init(int arr[] , int len){
int i = 0;
for (i; i < len; i++){
arr[i] = i;
}
printf("对数组初始化\n");
}
void reverse(int arr[], int len){
int start = 0;
int end= len - 1;
for (start; start <= len / 2; start++, end--){
arr[start] ^= arr[end];
arr[end] ^= arr[start];
arr[start] ^= arr[end];
}
printf("对数组逆置\n");
}
void empty(int arr[], int len){
//如果想把数组的每一个元素全部设为0,则可以采用memset函数对数组操作
//memset(arr, 0, sizeof(arr[0]) * size);
memset(arr, 0, sizeof(arr[0]) * len);
printf("对数组清空\n");
}
void printArr(int arr[], int len){
int i = 0;
for (i; i < len; i++){
printf("%d",arr[i]);
}
printf("\n");
}
int main(){
int arr[10];
int len = sizeof(arr) / sizeof(arr[0]);
init(arr , len);
printArr(arr, len);
reverse(arr ,len);
printArr(arr, len);
empty(arr, len);
printArr(arr, len);
system("pause");
return 0;
}