C语言数组,函数,指针
编写处理数组的函数,使用指针作为形参,可以采用以下方式。
方式一
数组名是该数组元素的首地址,所以可以传递数组名作为首地址,但仅有一个参数并不够,需要知道数组的长度,所以需要将数组长度作为第二个参数。
#include<stdio.h>
#define SIZE 10
int sum(int * ar, int n);
int main(void){
int arr[SIZE] = {20,10,5,39,4,16,19,26,31,20};
long answer;
answer = sum(arr, SIZE);
printf("The totle number of marbles is %ld.\n",answer);
return 0;
}
int sum(int *ar,int n){
int i;
int total = 0;
for(i=0;i<n;i++){
total += ar[i];
}
return total;
}
int sum(int *ar,int n)中,int * ar是指针变量,int n表示数组的长度。answer = sum(arr, SIZE),arr表示数组首地址,SIZE为数组的长度。
方式二
明确数组的开始位置与结束位置,分别将开始地址和结束地址作为形参。
#include<stdio.h>
#define SIZE 10
int sum(int * start, int * end);
int main(void){
int arr[] = {20,10,5,39,4,16,19,26,31,20};
long answer;
answer = sum(arr, arr+SIZE);
printf("The total number of marbles is %ld.\n",answer);
return 0;
}
int sum(int * start, int * end){
int total = 0;
while(start < end){
total += *start;
start++;
}
return total;
}
int sum(int * start, int * end),int * start表示数组开始地址,int * end表示数组结束地址。answer = sum(arr, arr+SIZE),调用时实参arr表示数组的开始地址,SIZE是数组的大小,arr+SIZE指向数组末尾的下一个位置。
总结,
C语言中编写数组处理函数,使用指针作为形参有一下方式:
(1)使用数组的首地址,数组长度作为形参
(2)使用数组的首地址,数组结束地址作为形参
请先 后发表评论~