可以,static在C语言中是表示一个变量为静态变量的,而不是常量,也不是不可变的变量。所谓的静态变量有两种情况,一种是静态全局变量,一种是静态局部变量。先说静态局部变量:通常情况下,在一个函数中定义一个变量,那么函数退出之后,这个变量就消失了,即使你第二次调用这个函数,里面的变量也会被...
📝 简单的理解方式: 普通变量:写字板,用完就擦 static变量:笔记本,翻开还在 这波类比我直接吹爆!🎉 🤔 为什么要用static? 需要累加计数时 想保存函数上次的状态 不想重复初始化某个值 程序员们:这也太好用了吧! 📌 划重点: 记住static变量只初始化一次 但能被多次修改 这就是它的独特之处~0 0 发...
首先static变量不是全局变量,全局变量在整个程序中均可见。且可以在整个程序的任何位置进行修改。而static变量,只在声明它的函数内看见,也只有在声明它的函数内可以被修改。即便在函数外或其它函数中有同名的变量,也和它不是同一变量。和局部变量相比,局部变量在每次调用函数时,变量值都会重置。而stati...
而如果说你让int a这种随意的变量放置到全局,就是一个灾难,会出现莫名奇妙被修改,找半天找不到被谁修改的问题。 说完了全局变量,全局函数前面加static,下来说下函数内部,添加static的妙用。 函数中的局部变量,默认是都在栈上面,这类变量最大的特点就是,函数返回之后,这段区域就会被其他函数调用时覆盖,重复利用,...
使用static修饰全局变量,这个时候程序执行出错 全局变量是具有外部链接属性的,外部链接属性是指在创建的项目里面,其中一个源文件(.c文件)里面设置的全局变量可以在其他的源文件里面使用。但是,如果使用static修饰全局变量,全局变量的外部链接属性会变成内部链接属性,导致其他得源文件就不能再使用这个源文件。所以,程序执行...
在 C 语言当中,变量的存储类型只能使用一个。因此 register 和 static 是不能放在一起共用的。即便是可以放在一起,register 也不能跟 static 一起共用。这是因为 static 所修饰的变量,称之为静态变量。静态变量的生命周期和全局变量是一样,如果放在寄存器中,也是白白浪费了一块地方。2.5 寄存器的数量是有限...
在C语言中,声明一个静态变量只需要在变量名前加上关键字static。静态变量与普通的局部变量不同,它的生命周期更长,不会随着函数的调用而释放。静态变量的一个重要特性是在函数调用时不会重新初始化,即使函数被多次调用,静态变量也只会被初始化一次。这使得静态变量在多次函数调用中保持了持久性,可以在函数多次调用时...
将上面的函数修改为可重入的函数很简单,只要将声明sum变量中的static关键字去掉,变量sum即变为一个auto 类型的变量,函数即变为一个可重入的函数。 当然,有些时候,在函数中是必须要使用static变量的,比如当某函数的返回值为指针类型时,则必须是static的局部变量的地址作为返回值,若为auto类型,则返回为错指针。