c++ - 结构和函数(通过引用传递)

标签 c++ arrays function pointers structure

请指导我使用这段代码,我想使用数组和函数存储 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/

相关文章:

javascript - 在函数内声明变量 - 循环

javascript - 想要同时使用 and 运算符

c++ - 使用 move 构造函数抛出异常? (C++)

c++ - 读取虚函数表(vtable)指针?

javascript - 行选择和分页 - Vue

php - 在php中删除数组中的双引号?

c++ - 类按钮需要函数指针

c++ - 为什么我不能创建数组 (C++)?

c++ - 为从函数返回的右值引用分配值

javascript - Cypress - JS - 数组映射