c++ - 将数组传递给函数 C++

标签 c++ arrays function reference declaration

我正在尝试将我的数组传递给一个名为 printDeck 的函数,在我向打印函数中添加内容之前,它工作得非常好。这是我对 printDeck 的声明和调用,以及对其他功能的调用,它们都可以正常工作:

void fillDeck(Card *deck);
void printDeck(Card deck[]);
void printDeck(Card p1[]);
void printDeck(Card p2[]);
void shuffleDeck(Card *deck);

int main (int argc, char *argv[]){
   Card deck[52];
   Card p1[26];
   Card p2[26];
   fillDeck(deck);
   shuffleDeck(deck);
   printDeck(deck); //this is where the problem is happening
   printDeck(p1);  //and here
   printDeck(p2);  //and here

}

对于所有这三个 printDeck 函数调用,我得到的错误是“对 `printDeck(Card*)' 的 undefined reference ”。我觉得我只是在犯一个愚蠢的错误而且真的看不到它,但对我来说一切看起来都很好?我已经查找了将数组传递给函数的语法,我认为我做得很好,但也许不是。 如果需要,这里是实际的功能:

void printDeck(Card deck[], Card p1[], Card p2[]){
   for(int i = 0; i < 52; i++){
      printf("%d of %s",deck[i].number,deck[i].suit); 
      printf("\n\n"); 
      //printf("%s", deck[i].suit);
      //printf("\n%d\n\n", deck[i].number);
   }
   printf("\n\nP1's cards\n");
   for(int i = 0; i < 52; i++){
      printf("%d of %s", p1[i].number, p1[i].suit);
   }
   printf("\n\nP2's cards\n");
   for(int i = 0; i < 52; i++){
      printf("%d of %s", p2[i].number, p2[i].suit);
   }
}

感谢任何帮助,谢谢!

最佳答案

这三行:

void printDeck(Card deck[]);
void printDeck(Card p1[]);
void printDeck(Card p2[]);

声明相同的功能。它们相当于说:

void printDeck(Card []);
void printDeck(Card []);
void printDeck(Card []);

如果你想在一个函数调用中打印所有的牌组,你需要将函数声明更改为:

void printDeck(Card [], Card [], Card []);

并更改调用线路:

printDeck(deck);
printDeck(p1);
printDeck(p2);

printDeck(deck, p1, p2);

关于c++ - 将数组传递给函数 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29851292/

相关文章:

c - C 中的 boolean 函数

c++ - STL什么是随机访问和顺序访问?

c++ - 使用不带参数的模板名称

javascript - 如何通过其键之一的值访问嵌套在数组内的对象?

c - 删除数组中的最后一个元素

javascript - 使用 javascript 根据一个公共(public)属性对多个数组进行分组

c++ - 如何解释 Valgrind 输出

C++写入文件时出现奇怪的字符

python - 检查函数单元测试中的值

function - 如何在 PowerShell 函数中将函数指定为脚本 block 参数的默认值?