#include <stdio.h>
#include <stdlib.h>
void Printf_Numbers(unsigned char number)
{
for(unsigned char i = 0; i<number;i++)
{
printf("%d\t",i+1);
if(i%5 == 0 && i > 0)
printf("\n");
}
}
int main()
{
while(1)
{
unsigned char x = 1;
if(x > 0)
{
Printf_Numbers(5);
x--;
}
}
return 0;
}
这段程序的目的是为了输出1 到数字5 但在控制台的实际输出却是输出了无限多次数字1到5
这是因为每一次while循环x的值都被重新赋值为1,因此if语句并没有起到判断作用。
在x的声明处加上一个static关键字后的输出为
这是因为被static关键字修饰的变量只会被初始化一次。
要想改变x的值只能通过赋值语句
x = value;