微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 51单片机电子时钟程序

51单片机电子时钟程序

时间:10-02 整理:3721RD 点击:
用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++);
是什么意思?

求大神 指点!

顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶

他的意思是,你忽略那个指针就理解了、

还是不理解,你的意思是什么?

我对指针不太了解。你如果是因为指针困惑你不懂那句意思的话,那你就当S是个普通变量好了

我觉得你还是好好学下指针的概念先,我对指针也没怎办学。

*s可以看成是一个变量,不需要考虑其他的

好的,谢谢。

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++。

你说得对,我又看了看程序觉得也是这样的,谢谢你。

恩,我也想知道什么意思,,,现在大约知道一点点,,,谢啦

问题提的不错  貌似我也学到了 哈哈

看不懂

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top