【发布时间】:2018-10-21 14:31:25
【问题描述】:
我有两个功能。一个叫play_card,一个叫scan_card。
如您所见,在 scan_card 函数中,它扫描 3 个数字。但是,我需要将这三个数字返回给 play_card。如何用指针做到这一点?
void play_card(void) {
int card_one;
int card_two;
int card_three;
int card_array[] = {0};
// Calls the scan_card function
play_scanner(card_array);
}
// Scans in the cards a user puts in
void scan_card(int card_array[]) {
int num1;
int num2;
int num3;
scanf("%d %d %d", &num1, &num2, &num3);
*card_one = num1;
*card_two = num2;
*card_three = num3;
}
【问题讨论】:
-
card_one和另外两个在另一个函数中声明,这意味着它们将不可访问。您还需要在每个指针中存储变量的地址,而不是它的值。 -
@Logan 所以我需要在这里存储地址。像这样?
void scan_card(int *card_one, int *card_two, int *card_three, int card_array[]) -
是的,这是一种方法。
-
@Logan 更好的方法是什么?
-
我会说这种方法。您也可以使用全局变量,但不要经常使用它们。