2015-10-13 379 views
-4

所以,我有這樣的:參數傳遞給函數

struct Entry { 
    int Key; 
    char * Info;  
}; 

const int SIZE=100; 
typedef Entry T; 
typedef T MyList[SIZE]; 

void read_MyList(MyList & L, int & n) 

MYLIST應該是一個指向結構的載體,對不對?所以我應該只傳遞指針的名字,對吧?但是'&'是什麼意思?我是否傳遞變量的引用?我傳遞了指針的引用嗎?

+6

也許有好的想法是讀一本書,關於位引用和指針讀兩次 –

回答

3
struct Entry { 
    int Key; 
    char * Info;  
}; 

意味着你已經結構稱爲入口

const int SIZE=100; 

意味着你聲明一個常量

typedef Entry T; 

意味着你給另一名入境,從現在開始T是另一名struct Entry

typedef T MyList[SIZE]; 

意味着你給另一名至100 T■數組,並將其命名爲:MyList

void read_MyList(MyList & L, int & n) 

表示您聲明一個函數,並給它一個參考MyList和一個參考int。引用意味着沒有副本,您使用發送給該函數的相同原始對象或變量。

因此: 要叫它,你必須提供一個MyList(不是一個指針,一個真實的物體)和一個int。參數是輸入/輸出參數。

喜歡:

int main(){ 
    MyList l1; 
    int n=0; 
    read_MyList(l1,n); 
    return 0; 
} 
+0

謝謝你的幫助!最好的!這就說得通了。 –

0

必須

struct Entry { 
    int Key; 
    char * Info;  
}; 

const int SIZE=100; 
typedef Entry T; 
T MyList[SIZE]; 

void read_MyList(T* L, int & n) 

和函數調用

int iEntries; 
read_MyList(MyList, iEntries); 
+0

謝謝您的幫助!這就說得通了。 –