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

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
...全文
104 点赞 收藏 7
写回复
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],这个是三维的.
关于第二问,不明白你的意思.
回复 点赞
发动态
发帖子
C语言
创建于2007-09-28

3.2w+

社区成员

24.0w+

社区内容

C语言相关问题讨论
社区公告
暂无公告