这是我研究静态变量的代码。
#include <stdio.h>
/* function declaration */
void func(void);
static int count = 5; /* global variable */
main() {
while(count--) {
func();
}
return 0;
}
/* function definition */
void func( void ) {
static int i = 5; /* local static variable */
i++;
printf("i is %d and count is %d\n", i, count);
}
我在终端上编译并运行了这个输出
i is 6 and count is 4
i is 7 and count is 3
i is 8 and count is 2
i is 9 and count is 1
i is 10 and count is 0
我的查询是为什么当count
的值等于0
时循环停止了?为什么它不会走向负无穷大?
答案 0 :(得分:4)
因为<p id="hidden">Surprise!</p>
<input type="text" id="name" />
<input type="button" onclick="Test()" value="press me" />
等于0
值。
当计数变为等于false
时,0
条件变为while
。
答案 1 :(得分:0)
因为在你的代码中写了
while (count--)
并且在C中,true定义为0以外的任何值,false定义为0。当计数达到零时,你的while循环停止。
答案 2 :(得分:0)
当你的循环达到0时,它会停止,因为在while循环中它被计为一个错误的布尔值,所以它会停止。
答案 3 :(得分:0)
当值为true
时,将执行while()。在这种情况下,任何正数都被视为true
。另一方面,零被解释为false
,从而停止循环。
基本上While(true)
,做点什么。到达false
后, while()循环停止。
如果你想消极,那么你需要一个 for()循环。
#include <stdio.h>
int main()
{
for(int i = 10; i > -10; i--)
{
printf("%d", i);
}
return 0;
}
或者,如果你想使用 while(),你应该这样做:
#include <stdio.h>
int main()
{
int position = 10;
while(position > -10)
{
printf("%d", position);
position--;
}
return 0;
}
答案 4 :(得分:0)
0 == false
当
while (0)
然后循环将停止。
由于您也使用c++
标记了帖子,我将使用boolalpha
在c ++中为您提供示例,其中bool值被提取并表示为true
或{{1 }}:
false
现在:
bool b = -5;
cout << boolalpha << b; // outputs: true
答案 5 :(得分:0)
while循环运行,直到它的参数不同于&#34; false&#34;,这是0.所以当count等于0时,它会停止。