大一c语言,请教一个问题

我的老师说过子函数调用的时候只输出返回值,想要保留对变量的改变得用到指针变量,但为什么我的冒泡排序法没用到指针却也能对数组中的数进行排序呢?

void bubble(float a[], int n)

{

    float o = 0;

    int i;
    for (; n!=1; n--)
    {
        for (i = 0; i <= n - 2; i++)
        {
            if (a[i] >= a[i + 1])
            {
                o = a[i + 1];
                a[i + 1] = a[i];
                a[i] = o;
            }
        }
    }
}

指针是什么,实际上就是地址,把地址传给子函数就可以直接修改地址中的值。而数组名字就是数组的首地址,排序就直接修改了地址里面的值了。

因为数组本身就是指针