배열 이름을 함수 매개 변수로 사용합니다. 배열 이름은
배열의 첫 번째 주소를 나타내므로 배열 이름이 실제 매개 변수로 전달 될 때 형식 매개 변수는 실제 매개 변수 유형의 포인터 변수를 저장할 수 있습니다.
대표:
- void fun (int arr [], int n);
- void fun (int * arr, int n);
두 표현은 동일합니다.
설명이
조합에있어서의 가상 어레이 이름은 함수 매개 변수로서 사용되는 경우 배열 이름이 나타내는 때문에, C 언어의 함수 호출 "값 전사"방법. 변수 이름은 함수 매개 변수로서 사용되는 변수의 값이 전달 채택 때 실제 배열의 첫 번째 요소 주소이므로 전달 된 값이 주소이므로 형식 매개 변수는 포인터 변수 여야합니다.
예 :
배열 a에 n 개의 정수를 역순으로 저장합니다.
#include<stdio.h>
void reverse(int a[],int n);
int main()
{
int a[10]={
2,4,3,1,5,0,9,8,7,6};
int i;
printf("输出原始数据!\n");
for(i=0;i<10;i++)
{
printf("%d",a[i]);
}
reverse(a,10);
printf("按相反顺序存放后\n");
for(i=0;i<10;i++)
{
printf("%d",a[i]);
}
printf("\n");
return 0;
}
void reverse(int a[],int n)
{
int t,i,j,m;
m=(n-1)/2;
for(i=0;i<=m;i++)
{
j=n-1-i;
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
하위 기능 알고리즘은 일반적인 유형의 반감기에 속합니다.
하위 기능의이 부분에서 포인터를 사용할 수 있습니다. 주소가 누적 될 수 있음을 알려주세요. 해당 시퀀스 번호를 추가하여 요소를 나타낼 수 있습니다.
void reverse(int *a,int n)
{
int *p,t,*i,*j,m;
m=(n-1)/2;
i=a;//不加数字时是指数组第一个元素
j=a-1+n;//指向的是数组最后一个元素
p=a+m;
for(;i<=p;i++,j--)
{
t=*i;
*i=*j;
*j=t;
}
}