在学习指针过程碰到一个问题,请教大家:
下面程序,单片机上电运行,第一次调用readRom()函数正常,第二次调用读取的数就不对了,也就是说while(1) 里第二个循环就不对了,第一个循环是正确的,第三次以后每次读出数字跟第二次是一样的,如果把指针*p换为全局的,也就是程序最前面定义,就正确了,把*p换成普通变量,也没问题的,请问这是为什么?
.....
.....
[code=C#][/code]
readRom()
{
unsigned char *p,i;
for(i=0;i<8;i++)
{
*p=readbyte(); //读取一个字节
lcd_dis(*p); //显示到LCD
}
}
main()
{
while(1)
{
readRom();
delayms(200); //延时一会
}} |