所以,我有这个:
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应该是指向struct的向量的指针,对吗?所以我应该只传递指针的名称,对吧?但那是什么'&'意思?我是否传递了变量的引用?我传递了指针的引用吗?
答案 0 :(得分:3)
struct Entry {
int Key;
char * Info;
};
表示你有一个名为entry
的结构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;
}
答案 1 :(得分: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);