主体
1.在定义函数的时候 ,如果形参是一个数组
css
格式:类型 参数名[]
2.如果在函数内部,修改了数组的元素,那么,原来的数组也会受到影响!
c
#include <stdio.h>
void printArr(int arr[],int n){
for(int i=0;i<n;i++){
printf("%d\n",arr[i]);
}
}
int main(){
// int 类型的数组
int arr1[]={1,2,3,4,5,8,9};
// 计算数组的元素个数:用数组的整体大小/单个元素大小
int n_arr1=sizeof(arr1)/sizeof(int);
printf("%d\n",n_arr1);
printArr(arr1,n_arr1);
int arr2[3]={7,8,9};
printArr(arr2,3);
}
运行结果:
c
void funArr(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",arr[0],arr[1]);
}
运行结果:
任务
c
#include <stdio.h>
/*
任务1:定义一个函数,它的参数是数组,它的返回值是数组中的所有元素的和。
int getArrSum(int arr[],int len){
}
任务2:定义一个函数,它的参数是int数组,它的返回值是数组中的所有元素的最大值。
int getArrMax(int arr[],int len){
}
任务3:定义一个函数,它的参数是int数组,和要查找的值。如果在这个数组中,能找到,则返回第一个找到的值的下标;如果找不到,则返回-1。
int findArrValue(int arr[],int len,int val){
}
*/
int getArrSum(int arr[],int len){
int sum = 0;
for(int i=0;i<len;i++){
sum += arr[i];
}
return sum;
}
int getArrMax(int arr[],int len){
//假设法:第一个元素是最大的
int max;
max=arr[0];
for(int i=1;i<3;i++){
if(arr[i]>max){
max=arr[i];
}
}
return max;
}
int findArrValue(int arr[],int len,int val){
int idx = -1;//假设找不到
for(int i=0;i<len;i++){
if(arr[i] == val){
idx=i;
break;
}
}
return idx;
}
int main(){
int arr[3] = {1,2,10};
printf("%d\n",getArrSum(arr,3));
printf("%d\n",getArrMax(arr,3));
printf("%d\n",findArrValue(arr,3,10));//2
printf("%d",findArrValue(arr,3,-10));//-1
}
运行结果: