1.形参和实参都用数组名。
2.实参采用数组名,形参采用指针变量。
3.实参和形参都采用指针变量。
4.实参为指针变量,形参为数组名。
#include<stdio.h>
#include<iostream>
//第一种方式
//注意传入的是a[],而不是a
void change(int a[]){
a[4] = 888;
}
//第二种方式
void change2(int* a) {
*(a+4) = 999;
}
//第三种方式
void change3(int* p) {
*(p + 4) = 333;
}
//第四种方式
void change4(int a[]) {
a[4] = 222;
}
void printArr(int arr[],int length) {
for (int i = 0; i < length; i++)
{
printf("%d ", arr[i]);
}
putchar('\n');
}
int main() {
int a[5] = { 1,2,3,4,5 };
int length = sizeof(a) / sizeof(a[0]);
printf("改变之前的数组:\n");
printArr(a, length);
change(a);
printf("改变之后的数组:\n");
printArr(a, length);
printf("改变之前的数组:\n");
printArr(a, length);
change2(a);
printf("改变之后的数组:\n");
printArr(a, length);
printf("改变之前的数组:\n");
printArr(a, length);
int* p = a;
change3(p);
printf("改变之后的数组:\n");
printArr(a, length);
printf("改变之前的数组:\n");
printArr(a, length);
int* p2 = a;
change4(p2);
printf("改变之后的数组:\n");
printArr(a, length);
system("pause");
return 0;
}
输出: