传递枚举数组是什么意思

What is mean by passing the enum array?

本文关键字:是什么 意思 数组 枚举      更新时间:2023-10-16

我们可以将enum作为数组或指针传递吗。我在网上听到过这样的问题。所以我想看看这是什么意思。我们怎么能做到这一点?实例

就像任何其他数组一样:

#include <stdio.h>
enum colour {
    WHITE,
    RED,
    ORANGE,
    YELLOW,
    GREEN,
    BLUE,
    INDIGO,
    VIOLET,
    BLACK
};
char *colour_names[] = {
    "WHITE",
    "RED",
    "ORANGE",
    "YELLOW",
    "GREEN",
    "BLUE",
    "INDIGO",
    "VIOLET",
    "BLACK"
};
void show_colours(enum colour colours[], int count) {
    int i;
    for (i = 0; i < count; ++i) {
        printf("%s ", colour_names[(int)colours[i]]);
    }
    printf("n");
}
int main(int argc, char **argv) {
    enum colour estonia[] = {BLUE, BLACK, WHITE};
    show_colours(estonia, 3);
    return 0;
}

输出:

BLUE BLACK WHITE 

你不能。我的意思是,如果你有

typedef enum {
    ALFA,
    BRAVO,
    CHARLIE,
    DELTA
} Alphabet;

不可能按原样将该信息传递给函数。

你可以做的是,声明一个整数数组,将字母表:的值分配给该数组

字母ab[26]={ALFA,BRAVO,CHARLIE,…}

在这一点上,你将能够像传递任何其他指针一样传递"ab"。