动态变量和静态变量的定义和区别如下:
1.定义上,静态变量比动态变量在多一个关键字static,比如:
动态变量::int i;
静态变量:static int i;
2.动态变量在子程序中,每次调用都会从它的初始值开始调用,而不管他在函数中经历了什么变化;静态变量会从变化后的值继续改变。
main() { int i; for(i=0;i<5;i++)fun();//fun1(); } void fun() //输出结果为11111 { int j; j++; printf("%d",j); } void fun1() //输出结果为12345 { static int j; j++; printf("%d",j); }
但是,我要说明的是,这里的关键点:就是他们的变化是在这个变量再次被(调用)的时候才能有区别,就是说他们被别的函数重新调用时而不是在一个函数内被多次使用,
就像一个叠加的例子:
{
int i;//是动态的
i++;
i++;
i++;
}
i在这个函数中是会持续叠加的,因为他不属于重新被调用,只有当他被另外一个函数调用时才会起到动态变量原有的效果!