很简单的一些问题,搞糊涂了

JerrySabrina 2004-12-23 09:42:26
最近在做输入法,网上看到T9,自由拼音的原代码也研究了一下,现有一些关于数组的问题请教各位:
---------------------------------------------------------------------------
BYTE (* PY_index_pointer[27])[9]= //这是索引的入口
{
PY_index_a,PY_index_b,PY_index_c,PY_index_d,PY_index_e,
PY_index_f,PY_index_g,PY_index_h,PY_index_j,PY_index_j,
PY_index_k,PY_index_l,PY_index_m,PY_index_n,PY_index_o,
PY_index_p,PY_index_q,PY_index_r,PY_index_s,PY_index_t,
PY_index_w,PY_index_w,PY_index_w,PY_index_x,PY_index_y,
PY_index_z,PY_index_end
};
---------------------------------------------------------------------------
BYTE PY_index_a[][9]= //每个字母的索引,这里是a
{
{0x20,0x20,0x20,0x20,0x20,0x20,0x00,0x00,0x00},
{'i',0x20,0x20,0x20,0x20,0x20,0xFF,0x00,0x00},
{'n',0x20,0x20,0x20,0x20,0x20,0xFE,0x01,0x00},
{'n','g',0x20,0x20,0x20,0x20,0xFD,0x02,0x00},
{'o',0x20,0x20,0x20,0x20,0x20,0xFC,0x03,0x00}
};
---------------------------------------------------------------------------
此处,PY_index_a[][9]应该是个二维数组,那么(* PY_index_pointer[27])[9]是不是应该就是三维的数组,我对二维的理解是一个矩阵,有m行n列,但是三维的怎么理解呢?难道是空间的吗?
---------------------------------------------------------------------------
2,当我索引好,找到码表的相应位置,如a对应的是
{"阿啊吖锕嗄呵腌"},这里定义一个指针指向首地址,那么我想请问该怎么才能得到总的长度?sizeof(指针)=4。因为我想下标候选的标号。
---------------------------------------------------------------------------
不知道有没有把问题描述清楚,请教各位。Thanks
...全文
143 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
JerrySabrina 2004-12-23
  • 打赏
  • 举报
回复
Thanks dongpy(51-->ARM) and shenailin(sal)
那么(* PY_index_pointer[27])[9]这东西是不是三维数组来的。
关于第二问,也想听到你们的解答,谢谢,我的意思是求{"阿啊吖锕嗄呵腌"}的长度。
shenailin 2004-12-23
  • 打赏
  • 举报
回复
*((*(*(PY_index_pointer+i)+j)+k)

PY_index_pointer->数组首地址
*(PY_index_pointer+i)->PY_index_pointer[i]首地址
*(*(PY_index_pointer+i)+j)->PY_index_pointer[i][j]首地址
dongpy 2004-12-23
  • 打赏
  • 举报
回复
(PY_index_pointer[i])[j][k],这样就应该可以了吧
dongpy 2004-12-23
  • 打赏
  • 举报
回复
(* PY_index_pointer[27])[9]是一个长度为27的指针数组,数组元素是指向长度为9的数组的指针
JerrySabrina 2004-12-23
  • 打赏
  • 举报
回复
实际上,二维数组就是一个指向指针的指针。a[i][j]也可以用指针方法表示为:
 *(*(a+i)+j)
这里*(a+i)即a[i],*(*(a+i)+j)即相对于a[i]偏移j个位置,也就是a[i][j]。
====================================================================================
如果二维数组是这样访问的,那么三维的指针数组(* PY_index_pointer[27])[9]想访问PY_index_pointer[i][j][k]该怎么走,谢谢
JerrySabrina 2004-12-23
  • 打赏
  • 举报
回复
Thanks all!
dongpy 2004-12-23
  • 打赏
  • 举报
回复
(* PY_index_pointer[27])[9],这个是三维的.
关于第二问,不明白你的意思.

70,020

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧