我有關於傳遞數組的第一元素的地址到(遞歸)功能的問題:子陣列通過地址給一個函數
selectionSort(&b[1], size-1);
當地址被傳遞給函數,函數參數必須是我知道指針。 selectionSort
方法獲取int b[]
作爲參數。不是指針。
但代碼工作沒有任何問題。此代碼也生成子數組。當我們傳遞第一個元素時,它會變成子陣列的zeroeth元素嗎?
void selectionSort(int b[], int size)
{
int temp,i;
if (size>=1)
{
for (i = 0; i < size; i++)
{
if (b[i]<b[0])
{
temp=b[0];
b[0]=b[i];
b[i]=temp;
}
}
selectionSort(&b[1], size-1);
}
}
「它變成了子陣列零元素?」 - ***什麼?*** – 2013-06-12 12:33:06
此外,[數組不是指針](http://c-faq.com/aryptr/aryptr2.html),但他們可以[衰變成一個。](http:// stackoverflow.com/questions/1461432/what-is-array-decaying)。 – 2013-06-12 12:34:50
對不起,我的英文。我試圖說,當原始數組的第一個元素地址發送到函數時,此元素變成子數組的第0個元素?這是瘋狂的 – Lyrk