OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3701|回复: 6

请教一个指针到问题

[复制链接]

49

主题

341

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
5259
金钱
5259
注册时间
2012-8-25
在线时间
1025 小时
发表于 2016-7-4 11:04:43 | 显示全部楼层 |阅读模式
10金钱
本帖最后由 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;

这种就没问题



最佳答案

查看完整内容[请看2#楼]

[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\r\n", (*menu_x_y)[0][0]); menu_x_y = &menu_1_c; printf("%s\r\n", (*menu_x_y)[0][0]); }[/m ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

347

帖子

3

精华

金牌会员

Rank: 6Rank: 6

积分
2078
金钱
2078
注册时间
2014-12-19
在线时间
710 小时
发表于 2016-7-4 11:04:44 | 显示全部楼层
[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\r\n", (*menu_x_y)[0][0]);

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

你的程序只要刚开始的时候判断一下,将数组地址赋给menu_x_y指针,之后就可以像上面一样调用它来指向你所需的字符串了。
回复

使用道具 举报

2

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
89
金钱
89
注册时间
2015-12-9
在线时间
20 小时
发表于 2016-7-4 13:49:22 | 显示全部楼层
单个指针还了解,多重指针想想就晕晕的。帮顶!
回复

使用道具 举报

60

主题

409

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2814
金钱
2814
注册时间
2012-10-17
在线时间
653 小时
发表于 2016-7-4 14:43:32 | 显示全部楼层
char* (*pt)[2];
回复

使用道具 举报

49

主题

341

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
5259
金钱
5259
注册时间
2012-8-25
在线时间
1025 小时
 楼主| 发表于 2016-7-5 08:09:08 | 显示全部楼层
yklstudent 发表于 2016-7-4 22:14
//中文显示
const char* menu_sub1_c[][2] =
{

谢谢,这样到话还是要每次判断语言啊,我本来是想开机判断一下,后面就不用判断了。
还有各种循环啊之类的。
回复

使用道具 举报

0

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2016-6-6
在线时间
18 小时
发表于 2016-7-5 12:38:16 来自手机 | 显示全部楼层
这个二维数组是一个指针二维数组,其中的元素是char*类型的指针,楼主只需按照二维数组的使用方法即可,注意每个元素是指针。
回复

使用道具 举报

49

主题

341

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
5259
金钱
5259
注册时间
2012-8-25
在线时间
1025 小时
 楼主| 发表于 2016-7-6 08:42:34 | 显示全部楼层
谢谢啊,还是有高手。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-27 17:26

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表