所以这是我的代码。
#include<stdio.h>
int main()
{
int a[4]={6,2,7,3};
sort(a,4);
int i;
for(i=0;i<4;i++)
printf("%d",a[i]);
}
int sort(int a[],int n)
{
int i,j,temp;
for (i=0; i< (n -1); i++)
{
for(j = (i+1); j < n; j++)
{
if (a[i]< a[j])
{
temp= a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
}
并且输出是 7632。我认为当传递给函数时,变量的值在 main 中永远不会改变(除非使用指针)。它只是影印和操作完成。但是这里 a[i] 的值在主函数中发生了变化。这是如何运作的?我什至没有返回排序后的数组。