51单片机C语言程序问题,关于指针数组的应用,急急急呀,

//我的部分程序是:

//--定义一个指针数组指向时钟显示需要的10个数字--//
uchar *p[] = {NUM0,NUM1,NUM2,NUM3,NUM4,NUM5,NUM6,NUM7,NUM8,NUM9};
//然后就是用指针利用数组如下:
for(i=0;i<8;i++)//时钟小时数据:
{
P0=~(*(P[1]+i*2));
P2=~(*(P[1]+i*2)+1);
Delayus(5);
}
//然后就是每一个NUM是都是一些要显示数字的代码,比如NUM0就是数字“0”的16*16点阵代码,我这样写的时候,报错为:
: subscript on non-array or too many dimensions
: '*' illegal indirection
不知道这个问题怎么解决呀?求大神指导?

还有就是我的数据在NUM里面,那么DS1302传递过来的时钟信息跟代码怎么配对的时候能够快方便点呀,我寻求过告诉,他们说可以用结构体,或者枚举,,求大神指导。

第1个回答  2014-07-08
认真看看你的代码:
uchar *p[] = {NUM0,NUM1,NUM2,NUM3,NUM4,NUM5,NUM6,NUM7,NUM8,NUM9};


P0=~(*(P[1]+i*2));
P2=~(*(P[1]+i*2)+1);

定义的变量是p,而引用的时P,大小写不同。因而是2个变量。P本身没有定义,因此缺省为普通标量,P[]的使用当然导致错误。

数据结构的方面,推荐首先采用自己会的方式,然后随着经验的增加再逐步优化。追问

好的,我再测试一下

本回答被提问者采纳
相似回答