将数组作为函数的参数
数组会隐退成指针—>int arr[]<=>int* arr
这个指针就指向数组的首元素
以冒泡法为例:
数组的大小本可以通过sizeof(arr)/sizeof[]求得
但此时数组退化成指针
sizeof(arr)所求的值就是一个指针的大小,32为系统中占4个字节(此时为32位)
而此时的数组为int型占4个字节 所以相除就为1,不等于数组元素数量
如果此时为char类型的数组,比值就为4
如图:
* void BobbleSort(int* arr, int n)//int arr[]
{
for (int i = 1; i <= n - 1; ++i)
{
for (int j = 0; j <= n - 2;++j)
{
int temp = 0;
if (arr[j] > arr[j + 1])
{
temp = arr[j + 1];
arr[j + 1] = arr[j];
arr[j] = temp;
}
}
}
}