如下c程序 while(*p)是啥意思?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如下c程序 while(*p)是啥意思?相关的知识,希望对你有一定的参考价值。
p=a说明,p指向的是数组a的首地址。就是指a[0]的地址。你看到while后面有个p++,就是指将p往后移动一个,就是指的a[1],同理这个while循环可以遍历数组a的所有元素,当a完了 就退出while循环了。。 参考技术A p指向的是数组a的首地址。后面的p++就是遍历字符串a,因为字符串最后为‘\0’,所以while循环退出。来自:求助得到的回答 参考技术A 当指针P恒成立while (i --> 0) 是啥意思?
【中文标题】while (i --> 0) 是啥意思?【英文标题】:What does while (i --> 0) mean?while (i --> 0) 是什么意思? 【发布时间】:2014-01-12 07:46:16 【问题描述】:如果这是一个愚蠢的问题,我深表歉意,但我无法在任何地方找到答案。
以下代码如何工作? (我意识到它会遍历els
的元素)
var i = els.length;
while (i --> 0)
var el = els[i];
// ...do stuff...
我不知道-->
是什么意思。没有它的文档。有人能启发我吗?
【问题讨论】:
它是 i-- 大于 0 一个空格错字真的有 4 个赞吗? @RUJordan - 这不是间距错字。这(可能)是故意尝试用-->
形成一个箭头作为一种伪“倒计时”运算符。整个语句被读作“我归零”......
@nnnnnn 现在我知道它的作用,我同意它可能只是为了幽默/烦人。
@nderscore:这有点不同。如果您不能保证 i
从 >= 0
开始,则循环可以继续。
【参考方案1】:
应该读作
i-- > 0
所以,真正发生的是,
检查i
的值是否大于0,如果为真则控制进入while
块,如果为假则跳过while
块。
无论哪种方式,i
的值都会在检查条件后立即递减。
使用for
循环总是更好,当我们使用计数器运行循环时,像这样
for (var i = els.length - 1; i >= 0; i -= 1)
...
Please read more about whether ++
, --
is okay or not.
【讨论】:
对减量前的值进行校验。如果写成--i > 0
,则在减量后检查该值。
@Cuberto 这就是我提到帖子减少的原因。 :)
您确实提到了“post decremented”,但您说“然后会检查值”混淆了它,这听起来像是在递减之后发生的......
所以就像i - 1 > 0
?
@ManofSnow i - 1
实际上不会改变i
的值,i--
会改变i
的值。【参考方案2】:
这只是奇怪的间距,应该是
while((i--) > 0)
它只是在递减和检查条件后。 C++的问题有这个幽默的回答,但我认为它被删除了
while (x --\
\
\
\
> 0) //i goes down to zero!
或者类似的东西,无论如何
如果你有类似的东西
var i=3;
while(i-->0)
console.log(i);
它会返回
2
1
0
【讨论】:
是这样 ;-) 但无论如何,你的回答分享了一段有趣的 C++ 代码,值得点赞) 大声笑...我刚刚阅读了原始答案,并且 cmets 遵循了它。 是的,我想我至少读过一次所有的答案和 cmets【参考方案3】:代码实际上应该是:
while (i-- > 0)
如果变量i
递减后的值大于零,则循环将运行的位置。
【讨论】:
比较后减量,--i
是预减量。【参考方案4】:
这只是奇怪的间距。是一样的
while (i-- > 0)
【讨论】:
以上是关于如下c程序 while(*p)是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章
while(p) 是啥意思? (p 是指向 C 样式字符串的第一个元素的指针)