请指导我使用这段代码,我想使用数组和函数存储 5 个数据的列表,这是我的一段代码,但这给了我一个错误(“33”):
Cannot convert `ABC (*)[5]' to `ABC*' for argument `1' to `void pass(ABC*)'
代码:
#include <iostream>
using namespace std;
struct ABC{
char name[20];
int phone;
char address[20];
};
void pass(ABC *abc){
for(int i=0; i<5;i++){
cout<<"Enter name"<<endl;
cin>>abc[i].name;
cout<<"Enter phone"<<endl;
cin>>abc[i].phone;
cout<<"Enter address"<<endl;
cin>>abc[i].address;
}
}
int main()
{
ABC abc[5];
pass(&abc);
system("PAUSE");
return EXIT_SUCCESS;
}
最佳答案
您可以使用 pass(&abc[0]);
或 pass(abc);
获取指向数组中第一个元素的指针。否则,如果您单独使用 &abc
,您会得到一个指向整个数组 [5] 的指针,而不是数组中的元素。
关于c++ - 结构和函数(通过引用传递),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20707456/