请教一个指针到问题

2019-07-20 21:27发布

本帖最后由 gotofly21 于 2016-7-4 11:12 编辑

各位好,请教个问题,做中英菜单,
char *const   menu_1_c[][2]=
{
  {"新建","保存"},
  {"手动","自动"}
};

char *const   menu_1_e[][2]=
{
  {"NEW","SAVE"},
  {"MANU","AUTO"}
};
如何定义一个指针来指向他们呢?
我用 char ***p;
if(yuyan_f==0) p=(char ***) menu_1_c;
else     p=(char ***) menu_1_e;可以赋值,但是显示出来不对啊


如果是
char *const   menu_1_c[]=  {"新建","保存"},
char *const   menu_1_e[]=  {"新建","保存"},
char  **p
if(yuyan_f==0) p=(char **) menu_1_c;
else     p=(char **) menu_1_e;

这种就没问题



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
lvehe
1楼-- · 2019-07-20 22:59
[mw_shl_code=c,true]const char *menu_1_c[][2]=
{
  {"新建","保存"},
  {"手动","自动"}
};

const char *menu_1_e[][2]=
{
  {"NEW","SAVE"},
  {"MANU","AUTO"}
};
int main(void)
{
        const char *(*menu_x_y)[2][2];
        
        menu_x_y = &menu_1_e;
        printf("%s ", (*menu_x_y)[0][0]);

        menu_x_y = &menu_1_c;
        printf("%s ", (*menu_x_y)[0][0]);
}[/mw_shl_code]

你的程序只要刚开始的时候判断一下,将数组地址赋给menu_x_y指针,之后就可以像上面一样调用它来指向你所需的字符串了。
TCsbx
2楼-- · 2019-07-21 04:07
单个指针还了解,多重指针想想就晕晕的。帮顶!
civic7366
3楼-- · 2019-07-21 05:43
char* (*pt)[2];
gotofly21
4楼-- · 2019-07-21 10:00
 精彩回答 2  元偷偷看……
1542380129
5楼-- · 2019-07-21 10:28
这个二维数组是一个指针二维数组,其中的元素是char*类型的指针,楼主只需按照二维数组的使用方法即可,注意每个元素是指针。
gotofly21
6楼-- · 2019-07-21 13:53
 精彩回答 2  元偷偷看……

一周热门 更多>