在C语言中static的作用如下

第一、在修饰变量的时候,static修饰的静态局部变量只执行一次,而且延长了局部变量的生命周期,直到程序运行结束以后才释放。 
第二、static修饰全局变量的时候,这个全局变量只能在本文件中访问,不能在其它文件中访问,即便是extern外部声明也不可以。 
第三、static修饰一个函数,则这个函数的只能在本文件中调用,不能被其他文件调用。Static修饰的局部变量存放在全局数据区的静态变量区。初始化的时候自动初始化为0; 
(1)不想被释放的时候,可以使用static修饰。比如修饰函数中存放在栈空间的数组。如果不想让这个数组在函数调用结束释放可以使用static修饰 
(2)考虑到数据安全性(当程想要使用全局变量的时候应该先考虑使用static)


在C++中static关键字除了具有C中的作用还有在类中的使用 
在类中,static可以用来修饰静态数据成员和静态成员方法 
静态数据成员 
(1)静态数据成员可以实现多个对象之间的数据共享,它是类的所有对象的共享成员,它在内存中只占一份空间,如果改变它的值,则各对象中这个数据成员的值都被改变。 
(2)静态数据成员是在程序开始运行时被分配空间,到程序结束之后才释放,只要类中指定了静态数据成员,即使不定义对象,也会为静态数据成员分配空间。 
(3)静态数据成员可以被初始化,但是只能在类体外进行初始化,若为对静态数据成员赋初值,则编译器会自动为其初始化为0 
(4)静态数据成员既可以通过对象名引用,也可以通过类名引用。

静态成员函数 
(1)静态成员函数和静态数据成员一样,他们都属于类的静态成员,而不是对象成员。 
(2)非静态成员函数有this指针,而静态成员函数没有this指针。 
(3)静态成员函数主要用来方位静态数据成员而不能访问非静态成员。

转载于:https://blog.csdn.net/newcong0123/article/details/52725595

转载于:https://www.cnblogs.com/curo0119/p/8645801.html

C语言中static关键字的作用相关推荐

  1. C语言中static关键字的作用详解,全网最透彻

    在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条. (1)先来介绍它的第一条也是最重要的一条:隐藏. 当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有 ...

  2. 【✊基础不牢,地动山摇のC语言中static关键字✊】

    C语言中static关键字 用static声明限定外部变量与函数,可以将其后声明的对象的作用域限定为被编译源文件的剩余部分.要降对象指定为静态存储,可以在正常的声明之前加上关键字static作为前缀. ...

  3. C语言中static关键字和break/continue在for/while循环中的作用

    前言 此篇博客对C语言的基础知识稍加总结,包括C语言中的static关键字作用,三大循环语句中出现的break和continue对循环体的影响,常量,生命周期,作用域,字符串,转义字符等等,其中常见的 ...

  4. C语言中static关键字详解

    C语言中staic关键字很简单,简单到你的任何一个项目中可以不写一个staic关键字也是没有问题的.写这篇章主要是一下自己的staic的理解和应用,当然在章开头依旧要照本宣科简述一下static关键字 ...

  5. char* 赋值 const char* 释放_C/C++编程笔记:C语言中 const 关键字的作用及解析,值得收藏!...

    有时候我们希望定义这样一种变量,它的值不能被改变,在整个作用域中都保持固定.例如,用一个变量来表示班级的最大人数,或者表示缓冲区的大小. 为了满足这一要求,可以使用const关键字对变量加以限定: c ...

  6. c语言中static关键字用法详解

    概述 static关键字在c语言中比较常用,使用恰当能够大大提高程序的模块化特性,有利于扩展和维护. 但是对于c语言初学者,static由于使用灵活,并不容易掌握.本文就static在c语言中的应用进 ...

  7. c语言中volatile关键字的作用

    读文章之前 可以先看一下<程序员的自我修养 >第28页 过度优化. volatile 提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直 ...

  8. C语言中voliate关键字的作用

    一个变量用voliate关键字修饰,是要告诉编译器,这个变量的值随时可能发生变化,所以编译器每次都必须从变量对应的内存地址中获取该变量的值. voliate的常用方式: 当一个变量表示某寄存器的值时, ...

  9. C语言中const关键字的作用

    1.可以定义const常量,具有不可变性.例如:const int Max=100; Max++会产生错误; 2.便于进行类型检查,使编译器对处理内容有更多了解,消除了一些隐患.例如: void f( ...

最新文章

  1. ivew 限制输入 0 到 1 的数字 包括小数, 0 ,1
  2. JavaFX——fxml文件加载错误:[javafx.fxml.LoadException]解决方案之一
  3. Coolite Toolkit学习笔记系列文章
  4. struct and union
  5. termux配置python安装kali_安卓安装kali linux之Termux
  6. window 如何查看tomcat 实时日志_如何处理生产环境Tomcat的catalina.out日志?
  7. mysql text 查询速度_数据库学习之让索引加快查询速度(四)
  8. c语言全局变量默认值
  9. 【渝粤教育】国家开放大学2018年春季 7067-22T康复护理学 参考试题
  10. sql studio索引超出了数组界限
  11. 低俗文章之傻傻分不清楚的IC和ID卡(手稿)
  12. Win7梦幻桌面字体有问题怎么办
  13. mac安装教程 sqlyog_Mac开发环境配置:Homebrew的安装
  14. 大文件上传插件webupload插件
  15. 三星 galaxy s7 启用开发者模式
  16. 怎么监控mysql数据变化_mysql数据库数据变化实时监控
  17. 利用子集构造法实现NFA到DFA的转换
  18. css3 滤镜效果(黑白滤镜、模糊化处理等)
  19. 全局函数的名字应当使用“动词”或者“动词+名词”(动宾词组)
  20. FreeCodeCamp学习--Slasher Flick

热门文章

  1. 安装Linux时,引导分区位于一个GPT分区方案的错误提示
  2. 设计模式18---设计模式之策略模式(Strategy)(行为型)
  3. 校招真题练习011 种花(美团)
  4. 如何让你的操作系统更安全二
  5. 基于vue的移动web app页面缓存解决方案
  6. 《机器人学经典教程》——2.3 人工智能
  7. 什么是Nib文件?(Nib文件是一种特殊类型的资源文件,它用于保存iPhone OS或Mac OS X应用程序的用户接口)...
  8. Zabbix配置详解
  9. 第21章:MongoDB-聚合操作--聚合管道--$geoNear
  10. 集合嵌套存储和遍历元素的示例