51单片机电子时钟程序

2019-07-15 23:36发布

用LCD1602写电子时钟程序时用到指针,void displays(uchar hang,uchar lie,uchar *s)//
{
         if(hang==1)
         write_1602(0,0x80+lie);
         if(hang==2)
         write_1602(0,0xc0+lie);
         while(*s)
         write_1602(1,*s++);       
}
这段程序里

while(*s)  
write_1602(1,*s++);

是什么意思???????



求大神 指点!!!!!!!!!!!!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
12条回答
dongyumin
2019-07-17 00:00
while(*s)  
write_1602(1,*s++);

第一句,while(*s)->s指针,在这样的程序里应该是指向你要显示的字符串。打个比方说,你要显示"12345"这个字符串,其中"12345"在代码里编写了,存放在code segment里,s指向这个字符串存放的首地址,*s='1'。
第二句,write_1602();是个你定义函数。1应该是第“1”行。*s是指代你的字串的首元素.*s++就是s不断往字符串下个字符的地址指,*s就取回了下个字符。一般做个条件,while(*s)//如果字符串没到尾部就继续*s++。

一周热门 更多>