首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在变量中获取数组名称

在变量中获取数组名称
EN

Stack Overflow用户
提问于 2014-08-14 12:16:04
回答 2查看 66关注 0票数 0

我有很多不同名称的二维数组,比如

代码语言:javascript
复制
const int a[][2]
{
    {1,2},
    {3,4},
};
const int b[][2]
{
    {5,6},
    {7,8},
};

还有那么多人...我将数组名放在其他变量中,比如

代码语言:javascript
复制
int t_huff,f_huff;

t_huff =a;
f_huff =b;

现在,我想编写一个接收参数(数组名称)的函数,然后在switch案例中使用该参数

代码语言:javascript
复制
function_name(string name)
{
switch(name)
{
case a:

break;

case b:

break;
}
}

但是当我这样做的时候,我得到了一些警告,比如warning C4047:'=‘:' int’与'const int (*)2‘的间接级别不同。

请帮助我从我的项目中删除此警告

EN

回答 2

Stack Overflow用户

发布于 2014-08-14 12:26:30

您可能需要使用指向数组的指针,但使用指向int的指针会更容易。正如注释中所指出的,您不能简单地将字符串名映射到变量;无论如何,您都不希望多次将代码写出来。

选项1:指向int的指针

代码语言:javascript
复制
void function_name(int *base)
{
   int i = 0;
   int j = 1;
   int v = base[i * 2 + j];
   …
}

使用以下命令调用它:

代码语言:javascript
复制
function_name(&a[0][0]);
function_name(&b[0][0]);

选项2:指向数组的指针

代码语言:javascript
复制
void function_name(int (*arr)[][2])
{
    int i = 0;
    int j = 1;
    int v = (*arr)[i][j];
    …
}

使用以下命令调用它:

代码语言:javascript
复制
function_name(&a);
function_name(&b);

指向数组的指针的优点是您可以像平常一样使用下标(或多或少需要使用(*arr)表示法)。

票数 0
EN

Stack Overflow用户

发布于 2014-08-14 12:21:35

你不能这样做。您需要获取数组变量t_huff[]。你可以把一个t_huff命名为&t_huff=a;

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25299984

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档