开发者社区> 问答> 正文

如何将混合数据类型(int,float,char等)存储在数组中?

如何将混合数据类型(int,float,char等)存储在数组中?

问题来源于stack overflow

展开
收起
保持可爱mmm 2020-02-07 00:45:18 643 0
1 条回答
写回答
取消 提交回答
  • 您可以将数组元素设置为可区分的联合,也称为标记联合。

    struct { enum { is_int, is_float, is_char } type; union { int ival; float fval; char cval; } val; } my_array[10]; 该type成员用于选择union每个数组元素应使用的哪个成员。因此,如果要int在第一个元素中存储一个,则可以执行以下操作:

    my_array[0].type = is_int; my_array[0].val.ival = 3; 当您要访问数组的元素时,必须首先检查类型,然后使用联合的相应成员。一条switch语句很有用:

    switch (my_array[n].type) { case is_int: // Do stuff for integer, using my_array[n].ival break; case is_float: // Do stuff for float, using my_array[n].fval break; case is_char: // Do stuff for char, using my_array[n].cvar break; default: // Report an error, this shouldn't happen } 程序员要确保type成员始终与存储在中的最后一个值相对应union。

    2020-02-07 00:45:31
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载