今天一起来分析C语言,static关键字的用法。 static的用法 static关键字定义该变量为静态变量。 1、全局静态变量 如果定义为全局变量的静态变量,则和全局变量完全相同,只是静态全局变量只能在该.c文件中使用。而全局变量在同一个工程文件中可以被多个.c文件使用。 在全局变量前,加上关键字static,该变量就被定义成为一...
static c=3; //将c定义为static类型。b=b+1,c=c+1;return(a+b+c);}main(){int a=2,i;for(i=0;i<3;i++)printf("%d",f(a));}在第一次调用f函数时b=0,c=3,第一次调用结束后b=1,c=4,a+b+c=7;执行完之后由于c是静态局部变量,在函数调用结束后,它并不释放,所以保留c=4。而b...
欢迎大家来点赞评论,互相学习交流促进!!! 谢谢
所以,在for循环类的static变量在下一次进入循环的时候,值是保存了的,为你上一次退出循环时候的值
二、 面向过程程序设计中的static 1. 全局静态变量 在全局变量之前加上关键字static,全局变量就被定义成为一个全局静态变量。 内存中的位置:静态存储区(静态存储区在整个程序运行期间都存在) 初始化:未经初始化的全局静态变量会被程序自动初始化为0(自动对象的值是任意的,除非他被显示初始化) ...
static sizof struct switch unsigned void for while typedef continue float return typedef default 2、预定义标识符 预定义标识符在c语言中也有特定的含义,但可以用作用户标识符,预定义标识符分为两类: (1)、库函数名字,比如(printf,scanf,sin,isdigit等) ...
考察的是静态变量的内容,static int t=0;只执行了一次,当变量被分配的内存没有被释放 输出的结果是15
#include <stdio.h>void test() {static int a = 5;printf("%d ", ++a);}int main() {for(int i = 0 ; i < 10 ; i++){test();}return 0;} 返回: 6 7 8 9 10 11 12 13 14 15 原因: 创建的静态变量存放在静态区,只有在程序结束后才会销毁变量。此时循环创建的静态变量a实际上都指向...
下面我们通过两段代码来理解static修饰局部变量的意义。 代码语言:javascript 复制 //代码1#include<stdio.h>voidtest(){int i=0;i++;printf("%d ",i);}intmain(){int i=0;for(i=0;i<10;i++){test();}return0;}//代码2#include<stdio.h>voidtest(){//static修饰局部变量staticint i=0;i++...
for (int i = 0; i < 5; i++) { counter(); } return 0; } 运行这段代码,输出结果为: 函数被调用 1 次函数被调用 2 次函数被调用 3 次函数被调用 4 次函数被调用 5 次 在这个例子中,static int count = 0 只在第一次调用 counter() 函数时初始化,之后每次调用都会保持并增加其值。如果...