簡體   English   中英

將指針或數組傳遞給函數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM