首页
学习
活动
专区
工具
TVP
发布

C语言static,const和static const 的区别

在这个测试程序里,我试图在初始化变量c的值之后再修改c的值,编译直接报错,告诉我c已经是一个只读变量了,不可以改值。...2.static在函数内的时候,表明这个变量在函数的生命周期结束之后也不会被释放。 ?...static使用测试 在第一次调用test()时,如果static int b没有被我赋初值,也会被默认赋值成0。然后执行自增运算,所以输出1。...第二次调用test()时如果是普通的变量,则会被重新分配内存,但static类型的变量上次执行test函数之后没有被释放,而是保存在全局变量区,所以继续加一变成2。...对比一下非static的变量会怎样: ? 3.static在函数外的时候,表明这个变量的作用域只在该.c文件里,不能作用于整个工程。

3.6K10

C语言 | static静态变量

例87:学习C语言static定义静态变量的用法。  解题思路:在C语言中,static 不仅可以用来修饰变量,还可以用来修饰函数,使用 static 修饰的变量,称为静态变量。...C语言源代码演示: #include//头文件  int main()//主函数  {   void varfunc(); //函数声明    int i;//定义整型变量    for... int static_var=0; //定义静态变量    printf("变量var值是:%d\n",var);   printf("静态变量static_var值是:%d\n",static_var...);   printf("\n");//换行    var++;   static_var++; } 编译运行结果: 变量var值是:0 静态变量static_var值是:0 变量var值是:0 静态变量...以上,如果你看了觉得对你有所帮助,就给小林点个赞,分享给身边的人叭,这样小林也有更新下去的动力,跪谢各位父老乡亲啦~ C语言学习路线     C语言开发工具 更多案例可以go公众号:C语言入门到静通

1.4K52
您找到你想要的搜索结果了吗?
是的
没有找到

C语言static的应用

1. static全局变量与普通的全局变量有什么区别 ?  全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。   ...static全局变量只初使化一次,防止在其他文件单元中被引用;   2. static局部变量和普通局部变量有什么区别 ?   把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。...static局部变量只被初始化一次,下一次依据上一次结果值;   3. static函数与普通函数有什么区别?    static函数与普通函数作用域不同,仅在本文件。...只在当前源文件中使用的函数应该说明为内部函数(static修饰的函数),内部函数应该在当前源文件中说明和定义。...对于可在当前源文件以外使用的函数,应该在一个头文件中说明,要使用这些函数的源文件要包含这个头文件. static函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝

47630

C语言 | static静态变量

“要成为绝世高手,并非一朝一夕,除非是天生武学奇才,但是这种人…万中无一” ——包租婆 这道理放在C语言学习上也一并受用。...在编程方面有着天赋异禀的人毕竟是少数,我们大多数人想要从C语言小白进阶到高手,需要经历的是日积月累的学习。 那么如何学习呢?当然是每天都练习一道C语言题目!! ? 作者 闫小林 白天搬砖,晚上做梦。...例87:学习C语言static定义静态变量的用法。 解题思路:在C语言中,static 不仅可以用来修饰变量,还可以用来修饰函数,使用 static 修饰的变量,称为静态变量。...C语言源代码演示: #include//头文件 int main()//主函数 { void varfunc(); //函数声明 int i;//定义整型变量 for...int static_var=0; //定义静态变量 printf("变量var值是:%d\n",var); printf("静态变量static_var值是:%d\n",static_var

96132

C语言之关键字static

C语言的关键字static在有三个作用:声明静态函数,声明静态全局变量,声明静态局部变量 声明静态函数 在函数的返回类型前加个static,就是静态函数了。...因此,如果定义的全局变量(或函数)不需要与其他文件共享,建议加上static来降低程序之间的耦合。 声明静态局部变量 局部变量就是函数内部定义的变量,其作用域比全局变量小很多。...而使用了static的静态局部变量,即使在声明时未赋初值,编译器也会把它初始化为0。而且静态局部变量的存储位置也不同,即使函数返回了,它的值也会保持不变 ?...再看看使用static之后,对存储位置的影响。在VIP中声明不同位置的函数与变量 ? 再把它们的地址与系统内存布局对比一下 ?

99920

C语言笔记】static关键字

utm_source=copy C语言代码是以文件为单位来组织的,在一个源程序的所有源文件中,一个外部变量(注意不是局部变量)或者函数只能在一个源程序中定义一次,如果有重复定义的话编译器就会报错。...以下是示例程序: file1.h如下: #include void printStr(); 我们在file1.c中定义一个静态全局变量hello, 供file1.c中的函数printStr...; void printStr() { printf("%s\n", hello); } main.c如下: #include "file1.h" int main() { printStr()...; printf("%s\n", hello); return 0; } main.c是我们的主程序所在文件,main.c中如果引用hello会编译出错,报错如下: ?...如果我们将main.c改为下面的形式: #include "file1.h" int main() { printStr(); return 0; } 则会顺利编译连接。运行结果如下: ?

85530

C 语言 static、extern与指针函数介绍

1.exit(0)正常退出程序    exit(1)程序异常时退出程序 2.static(静态变量)修饰局部变量   在局部变量使用static修饰,会延长局部变量的存在期。...但我们需要注意一下几点: 虽然static修饰变量的生存期很长,但它始终是局部变量,不能在其他函数中使用 static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?...;      static局部变量和普通局部变量有什么区别:static局部变量只被初始化一次,下一次依据上一次结果值;      static函数与普通函数有什么区别:static函数在内存中只有一份...指针函数的一般形式:               类型 *函数名(参数列表) 下面用一个例子来体会一下指针函数的妙用吧 /* Note:Your choice is C IDE */ #include...,int j); char *SubString1(char s[] ,char temp[], int i,int j); void main() {  char string[]="I Love C

1.5K80

C# static

本文,在大文豪的staticC#中的static随笔基础上修改,增加了几个关键知识点 1、static 关键字简介 staticC#中经常使用的关键字之一,这个关键字常用于方法、字段、属性、事件、构造函数...它们最主要的区别是:静态成员成员在第一次初始化后,就给静态成员在内存中分配了地址,且这个地址只有一份,故static可以直接访问,而非静态成员必需手工去实例化该类,以对象的方式去访问变量和方法。...b、静态构造函数可以不能带有任何参数,但是非静态构造函数可以带有各种参数 c、是在创建第一个类实例或任何静态成员被引用时,.NET将自动调用静态构造函数来初始化类,也就是说我们无法直接调用静态构造函数,...造成i的原因是: 在一个静态方法或者是静态构造函数中方法使用非静态成员,因为static类型是属于这个类本身的,在类被调用的时候,static类型就已经生成,而非static成员还没有生成,他不属于这个类的本身...的使用场合 a、需要保存全局都有效的数据, 如:当前已登录用户信息、系统配置信息、系统设置 b、因为效率相对更高,所以需要快速访问的 c、使用频率非常高的 3、static不能使用过多,应为太多会消耗系统的内存

82850

c语言static关键字用法详解

概述 static关键字在c语言中比较常用,使用恰当能够大大提高程序的模块化特性,有利于扩展和维护。 但是对于c语言初学者,static由于使用灵活,并不容易掌握。...本文就staticc语言中的应用进行总结,供参考使用。错漏之处,请不吝指正。 最后一节加入了c++面向对象中static的使用特性,当作拓展阅读。 在程序中使用static 变量 1....声明的函数不能被另一个文件引用: /* file1.c */ #include static void fun(void) { printf("hello from...\n"); } 使用 gcc file1.c file2.c编译时,错误报告如下: /tmp/cc2VMzGR.o:在函数‘main’中: static_fun.c:(.text+0x20):对‘fun1...当然,有的公司编码规范明确规定只用于本文件的函数要全部使用static关键字声明,这是一个良好的编码风格。 无论如何,要在实际编码时注意自己的编码习惯,尽量体现出语言本身的优雅和编码者的编码素质。

43020

C# static

C# 中,static 关键字被用来标识一个成员(变量、方法、属性等)属于类自身,而不是类的实例。这意味着,无论我们创建多少个类的实例,都只会有一个 static 成员的副本。...关于 static 存储的一些主要特点: 生命周期: static 变量的生命周期与程序的生命周期相同。当程序开始时,它们被初始化,当程序终止时,它们被销毁。...访问方式: static 变量可以直接通过类名进行访问,而不需要对类进行实例化。 staticC# 中充当了全局变量的角色,并且提供了一种控制变量生命周期和访问权限的方式。...static修饰的含义 static 关键字可以用于修饰类的成员(变量、方法、属性)和类本身。...由于 static 成员与类相关联,不论实例化多少个类,对于每个 static 成员都只会有一个副本。 全局访问: static 成员可以在没有创建对象的情况下被访问,因此它们可以被看作是全局变量。

15120

Static关键字在c语言中的用法

前言 本文我们将会介绍在c语言static函数的一些用法 提示:以下是本篇文章正文内容,下面案例可供参考 一、static关键字是什么 staticC语言中是关键字,中文直译过来是“静态的”,static...关键字在C语言中主要是用来修饰变量和函数。...在C语言中,static关键字的作用有下面几种: 1.隐藏: static函数只能被其所在的源文件中的其他函数调用,它不会在其他源文件中可见。这样做可以避免在其他文件中同名函数的冲突。...,这对于将一些辅助函数,实用函数,限制在特点文件内非常有用 例如这段函数,calculatesum只能在生命的文件内部调用 总结 以上就是要说的内容,本文仅仅简单介绍了staticC语言的使用,static...在其他语言中还有更多的使用方法,例如c++等语言中。

7610

C语言深入理解extern用法 | 变量声明 | static

被extern “C”限定的函数或变量是extern类型的: extern是C/C++语言中表明函数和全局变量作用范围(可见性)的关键字,该关键字告诉编译器,其声明的函数和变量可以在本模块或其它模块中使用...实现C++与C及其它语言的混合编程: 被extern”C”修饰的变量和函数是按照C语言方式编译和连接的,未加extern “C”则按照声明时的编译方式。...extern “C”的惯用法 (1)在C++中引用C语言中的函数和变量,在包含C语言头文件(假设为cExample.h)时,需进行下列处理: extern "C"{ #include "cExample.h..." } 而在C语言的头文件中,对其外部函数只能指定为extern类型,C语言中不支持extern”C”声明,在.c文件中包含了extern”C”时会出现编译语法错误。...(2)在C中引用C++语言中的函数和变量时,C++的头文件需添加extern”C”,但是在C语言中不能直接引用声明了extern”C”的该头文件,应该仅将C文件中将C++中定义的extern”C”函数声明为

1.1K30

C语言深入理解extern用法 | 变量声明 | static

被extern “C”限定的函数或变量是extern类型的: extern是C/C++语言中表明函数和全局变量作用范围(可见性)的关键字,该关键字告诉编译器,其声明的函数和变量可以在本模块或其它模块中使用...实现C++与C及其它语言的混合编程: 被extern”C”修饰的变量和函数是按照C语言方式编译和连接的,未加extern “C”则按照声明时的编译方式。...extern “C”的惯用法 (1)在C++中引用C语言中的函数和变量,在包含C语言头文件(假设为cExample.h)时,需进行下列处理: extern "C"{ #include "cExample.h..." } 而在C语言的头文件中,对其外部函数只能指定为extern类型,C语言中不支持extern”C”声明,在.c文件中包含了extern”C”时会出现编译语法错误。...(2)在C中引用C++语言中的函数和变量时,C++的头文件需添加extern”C”,但是在C语言中不能直接引用声明了extern”C”的该头文件,应该仅将C文件中将C++中定义的extern”C”函数声明为

1.3K60

staticC语言中主要是两种用法

staticC语言中主要是两种用法 1、修饰局部变量 2、修饰函数和全局变量 局部变量按照存储形式来分,分为auto,static,register 首先从内存四区的角度去看,auto即为普通的局部变量...在C语言中register变量不能取地址,会报错。 而在c++中,对register做了增强,党C++编译器发现程序中需要取register变量的地址时,register对变量的声明变得无效。...static修饰局部变量时该变量是存放在静态存储区,生命周期是整个程序结束。 static局部变量初次定义时就要初始化,且只能初始化一次。...如果在定义的时候不初始化,编译器就会自动赋值为0;(也就是说如果重复调用同一个函数,在第二次调用时,就不会再执行static局部变量初始化那句话 了) 特点: static局部变量的”记忆性”与生存期的...此件时, 对于外部(全局)变量, 不论是否有static限制, 它的存储区域都是在静态存储区, 生存期都是全局的. 此时的static只是起作用域限制作用, 限定作用域在本模块(文)内部.

1.2K20
领券