正如我们所知,数组仅在 C 中通过指针传递,那么swap1(arr[i],arr[j])
下面意味着两个指针将传递给函数,swap1()
那么为什么swap1(arr[i],arr[j])
会给我错误?根据swap1()
应该传递两个指针的函数原型,我正在传递它。
另一方面,当我实际传递地址swap1(&arr[i],&arr[j])
时,它工作正常,这是显而易见的。
void swap1(int *a,int *b){
int temp = *a;
*a = *b;
*b = temp;
}
void bubble(int arr[], int i, int n)
{
for(int j=i+1;j<n;j++){
if(arr[i]>arr[j])
swap1(arr[i],arr[j]);
}
}