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