函数中传入数组

17 阅读1分钟

编译一个函数printArr,打印传入的数组中的所有元素

在定义函数的时候,如果形参是一个数组 格式为:类型 参数名[ ]

代码如下:

#include<stdio.h>
void printArr(int arr[], int len){
	
	for(int i = 0;i < len; i++){
		printf("%d\n", arr[i]);
		
	}
}

int main(){
	int arr1[5]={1,2,3,4,5};
	int arr2[3]={7,8,9};

	printArr(arr1, 5);
	printArr(arr2, 3);

}

结果如下:

image.png

也可用sizeof获取变量:

#include<stdio.h>

void printArr(int arr[], int len){
	
     for(int i = 0;i < len; i++){
		printf("%d\n", arr[i]);
		
     }
}

int main(){
	int arr1[]={1,2,3,4,5};
	计算数组元素个数  用数组的整体大小/单个元素大小	
	int n_arr1 = sizeof(arr1)/sizeof(arr1[0]);
	printf("%d\n", n_arr1);
	printf(arr1, n_arr1);	

与函数返回值的不变并不相同,传入数组会导致其结果的改变

如下代码:

#include<stdio.h>
void printArr(int arr[]){
	
	arr[0] = 100;
	arr[1] = 200;
}

int main(){
	int arr[] = {1,2};
	printf("%d %d\n", arr[0], arr[1]);
	funArr(arr);
	printf("%d %d\n", arr[0], arr[1]);
}

结果如下:

image.png