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(' '); } int main() { int a[5] = { 1,2,3,4,5 }; int length = sizeof(a) / sizeof(a[0]); printf("改变之前的数组: "); printArr(a, length); change(a); printf("改变之后的数组: "); printArr(a, length); printf("改变之前的数组: "); printArr(a, length); change2(a); printf("改变之后的数组: "); printArr(a, length); printf("改变之前的数组: "); printArr(a, length); int* p = a; change3(p); printf("改变之后的数组: "); printArr(a, length); printf("改变之前的数组: "); printArr(a, length); int* p2 = a; change4(p2); printf("改变之后的数组: "); printArr(a, length); system("pause"); return 0; }
输出: