我今天在修改别人的程序,他用的是指针数组,我有点看不明白,请大家帮我解释一下!!谢谢!! <br /><br />#include <reg51.h> <br /><br />/* data type define */ <br />typedef unsigned char code ARRAY[2][14]; <br /><br />ARRAY NUM2_TBL= <br />{ <br /> {0x00, 0x0f, 0xf0, 0x60, 0xd0, 0xf0, 0x60, 0xb0, 0xb0, 0xe0, 0xf0, 0xf0, 0x00, 0x00}, <br /> {0x00, 0x8f, 0x50, 0x00, 0x30, 0x20, 0x60, 0x60, 0x70, 0x00, 0x70, 0x60, 0x00, 0x20} <br />}; <br /><br />ARRAY NUM3_TBL= <br />{ <br /> {0x00, 0x0f, 0xf0, 0x60, 0xd0, 0xf0, 0x60, 0xb0, 0xb0, 0xe0, 0xf0, 0xf0, 0x00, 0x00}, <br /> {0x00, 0x8f, 0x50, 0x00, 0x30, 0x20, 0x60, 0x60, 0x70, 0x00, 0x70, 0x60, 0x00, 0x20} <br />}; <br /><br />/* pointer array */ <br />ARRAY code * code DISPL_TBL[2]= <br />{ <br /> NUM2_TBL, <br /> NUM3_TBL, <br />}; <br /><br />unsigned char work; <br />ARRAY code *ptr; <br /><br />void main (void) <br />{ <br /> while(1) <br /> { <br /> ptr = DISPL_TBL[0]; <br /> work = *(unsigned char data *)(*ptr)[0][0]; /* 这个地方看不明白是什么意思,请大家帮我解释一下 */ <br /> work &= (*ptr)[0][1]; <br /> work |= (*ptr)[0][2]; <br /> *(unsigned char data *)(*ptr)[0][0] = work; <br /> <br /> work = *(unsigned char data *)(*ptr)[1][0]; /* 这个地方看不明白是什么意思,请大家帮我解释一下 */ <br /> work &= (*ptr)[1][1]; <br /> work |= (*ptr)[1][2]; <br /> *(unsigned char data *)(*ptr)[1][0] = work; <br /> } <br />} <br /><br />请大家帮我解释一下(*ptr)[0][0],我分析迷了!! |
|