将参数传递给函数

时间:2015-10-13 20:26:05

标签: c++

所以,我有这个:

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的向量的指针,对吗?所以我应该只传递指针的名称,对吧?但那是什么'&'意思?我是否传递了变量的引用?我传递了指针的引用吗?

2 个答案:

答案 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);