打印

请问下 while(*String)这个是不是死循环啊?

[复制链接]
698|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
diylbl|  楼主 | 2016-4-13 19:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void PrintString(unsigned char *String){
                while(*String){
                PrintChar(*String++);
                               }
        }
请问下这个 while(*String)语句是不是死循环啊?后面 PrintChar(*String++);函数*String++这个不停的在加,

相关帖子

沙发
airwill| | 2016-4-13 20:42 | 只看该作者
想必没有理解这个 ++ 吧.
PrintChar(*String++);    通常不赞成 *String++ 这样的写法,  因为这里的 ++ 有歧义, 如果 String 这个指针被 ++ 了, 那么这段程序就不是死循环, 如果 String 指向的内容被 ++ 了, 那么到一直累加 0 的时候才退出, 但也不会死循环

使用特权

评论回复
板凳
cuya| | 2016-4-14 00:04 | 只看该作者
不一定是死循环, 一般来说, String 内容, 即字符串会以 0 结尾,从而退出循环。
*String++ 看习惯了, 就没有什么不对的。注意修饰对象, ++ 修饰的是String, 一个指针对象 ; 不是 *String.  

使用特权

评论回复
地板
ningling_21| | 2016-4-14 08:43 | 只看该作者
不一定

使用特权

评论回复
5
pkuzhx| | 2016-4-14 08:57 | 只看该作者
String 有正确的'\0'结尾就不会死

使用特权

评论回复
6
xstong| | 2016-4-15 09:45 | 只看该作者
不会死循环的,字符串输出的常规写法。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

64

主题

119

帖子

0

粉丝