c语言函数返回静态变量 c语言静态方法

有关c语言函数静态变量静态变量是一种生存期为整个源程序的量 。虽然离开定义它的函数后不能使用,但如再次调用定义它的函数时,它又可继续使用,
而且保存了前次被调用后留下的值 。
第一个printf(
"%d\n",
func(k+=100)
);
k+=100,k就是200;
x++;
y++;
k++;
x=2,y=11,k=201;
所以第一次打印是214
第二个printf(
"%d\n",
func(k+=100)
);
k+=100,k就是300;
x++;
y++;
k++;
x=2,y=12,k=301;(y是静态变量,原值不变)
所以第二次打印是315
第三个printf(
"%d\n",
func(k+=100)
);
k+=100,k就是400;
x++;
y++;
k++;
x=2,y=13,k=401;(y是静态变量,原值不变)
所以第二次打印是416
c语言中 函数调用结束后,函数内定义的静态变量所static不是允许修改,你估计和const搞混了,static表示静态存储,直到整个程序结束变量值才会从存储区释放,静态变量又分为全局静态变量和局部静态变量 , 
全局变量与全局静态变量的区别:
(a)若程序由一个源文件构成时 , 全局变量与全局静态变量没有区别 。
(b)若程序由多个源文件构成时,全局变量与全局静态变量不同:全局静态变量使得该变量成为定义该变量的源文件所独享,即:全局静态变量对组成该程序的其它源文件是无效的 。
(c)具有外部链接的静态;可以在所有源文件里调用;除了本文件,其他文件可以通过extern的方式引用;
静态全局变量的作用:
(a)不必担心其它源文件使用相同变量名 , 彼此相互独立 。
(b)在某源文件中定义的静态全局变量不能被其他源文件使用或修改 。
(c) 只能在本文件中使用!具有内部链接的静态;不允许在其他文件里调用;
静态局部变量和作用域和局部变量一样,不过生存周期不一样,局部变量在定义局部变量的函数调用完之后就从内存中释放其值,而静态局部变量不释放 , 等整个程序全部执行结束后才会从内存中释放 。
C语言中函数返回什么类型的变量哪些可以是临时,哪些必须是静态或全局c语言于函数调用调用前参数值要临存储堆栈区存储值调用刻
参数取值函数使用修改都操作堆栈些值函数返堆栈
些临设参数变量舍弃所些值直接返主程序(实际种
函数参数写返比较特殊)
传入函数参数指针型函数用指针型参数(数组指针)修
改指向存储区些存储区由于堆栈所函数返修改效
使用静态数据情形:静态数据设函数内变量般记录
调用函数状态比记录调用数由于静态变量退函数
丢掉直保存着拿记录调用数说函数知道调用者第几调
用自第调用能需要做些初始化工作
全局变量使用场合:变量许函数都要用全局效呼百应且函数
控制修改变量状态必通参数传递;另种情况数组变量尺
寸比存储图象、语音缓冲区并且使用频繁需要通参数传递占用堆
栈空间反复压栈、栈耗费CPU间
c语言static的作用和用法【c语言函数返回静态变量 c语言静态方法】static在c语言中是私有、静态意思 。
用于在函数中声明“静态变量”用c语言函数返回静态变量,在每一次调用后c语言函数返回静态变量,该变量并不在函数返回时立即释放,变量中保存c语言函数返回静态变量的值 , 可以保留到下一次调用时继续有效 。
私有就是隐藏 。static函数只能声明后的本文中调用 。static全局变量只能声明后的本文中调用 。static局部变量只能声明后的本函数调用

推荐阅读