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条回答
流克爱吃苹果
1楼-- · 2019-07-16 18:00
 精彩回答 2  元偷偷看……
dongyumin
2楼-- · 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++。
流克爱吃苹果
3楼-- · 2019-07-17 02:56
dongyumin 发表于 2013-7-19 23:30
while(*s)  
write_1602(1,*s++);

你说得对,我又看了看程序觉得也是这样的,谢谢你。
魏道志
4楼-- · 2019-07-17 07:14
恩,我也想知道什么意思,,,现在大约知道一点点,,,谢啦
a20084666
5楼-- · 2019-07-17 12:19
问题提的不错  貌似我也学到了 哈哈
qq770605
6楼-- · 2019-07-17 12:36
 精彩回答 2  元偷偷看……

一周热门 更多>