[英]Passing pointer or array to function
好像我在 CI 中有一個固定大小的數組可以將它傳遞給一個函數,只要函數的參數是一個指針或一個沒有指定大小的數組,例如:
int a[3] = {0, 1, 2};
void fn1(int *a);
void fn2(int a[]);
我還注意到我可以同時使用標准成員訪問和指針算法。
這兩種方法之間是否有任何形式或功能上的區別? 從邏輯上講,我認為第二個更好,因為它表明我應該將輸入參數視為數組,但這只是我的猜測。
任何提示將不勝感激。
這兩種方法之間是否有任何形式或功能上的區別?
這兩種方法在形式或功能上沒有區別。
在編譯期間int a[]
轉換為int *a
。 但是為了更好的可讀性,請使用int a[]
不是int *a
。
print (a[2])
轉換為print (*a + (2 * sizeof(int)))
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.