为什么在定义函数时重新初始化参数会导致数组中参数值改变

#define _CRT_SECURE_NO_WARNINGS
#include ;
void minmax(int* min, int* max, int a[], int len);
int main(void)
{
int min, max;
int a[] = { 1,3,4,5,7,2,8,9,66,33, };
minmax(&min, &max, a, sizeof(a) / sizeof(a[0]));
printf("min=%d,max=%d", min, max);
printf("a[0]=%d", a[0]);
printf("a[2]=%d", a[2]);
return 0;

}
void minmax(int* min, int* max, int a[], int len)
{
int i;
*min = *max = a[0]=0;//连等初始化会改变数组中参数值
a[2]=9;//单独不会

for (i = 1;i < len; i++)
{
    if (a[i]>*max)
        *max=a[i];
    if (a[i] < *min)
        *min = a[i];
}

}
//如果在函数单独初始化a【0】
并不会改变参数值,
连等初始化则会改变值,原因是什么呢?

那是因为你搞错了数组传参的概念了,你把 int a[] 改成int *a 试试呢?

数组中参数值是啥意思?到底改了啥???

哦哦好的,这样说明白了