c++ static关键字的作用

1、被申明的函数或值无法被其他源文件使用

2.static的第二个作用是保持变量内容的持久。(static变量中的记忆功能和全局生存期)

存储在静态数据区的变量会在程序刚开始运行时就完成初始化,也是唯一的一次初始化。共有两种变量存储在静态存储区:全局变量和static变量,只不过和全局变量比起来,static可以控制变量的可见范围,说到底static还是用来隐藏的。虽然这种用法不常见

PS:如果作为static局部变量在函数内定义,它的生存期为整个源程序,但是其作用域仍与自动变量相同,只能在定义该变量的函数内使用该变量。退出该函数后, 尽管该变量还继续存在,但不能使用它。

#include <stdio.h>

int fun(){
    static int count = 10; //在第一次进入这个函数的时候,变量a被初始化为10!并接着自减1,以后每次进入该函数,a
    return count--; //就不会被再次初始化了,仅进行自减1的操作;在static发明前,要达到同样的功能,则只能使用全局变量:    

}

int count = 1;

int main(void)
{
     printf("global\t\tlocal static\n");
     for(; count <= 10; ++count)
               printf("%d\t\t%d\n", count, fun());//局部变量statuc申明的变量和全局的不是同一个变量
     return 0;
}

3.static的第三个作用是默认初始化为0(static变量)

原文地址:https://www.cnblogs.com/long5683/p/11143517.html

时间: 2024-11-09 03:17:25

c++ static关键字的作用的相关文章

java4android (static关键字的作用)

静态成员变量的语法特点 (static String name)    既可以用类来调用,也可以用对象来调用. 静态成员变量不是对象层次的变量,是类层次的.这个类产生的所有对象,都是使用此静态成员变量. 静态函数的语法特点 ( static void talk()  ) 既可以用类来直接调用,也可以用对象来调用 静态函数中不能引用非静态的成员变量 静态代码块的语法特点( static {code}  ) 没有名字, 静态代码块在装载这个类时就被调用,主要作用是给一些静态变量赋初始值. java4

static 关键字的作用-------王志亭

★       我一下要写的关于static 关键字的作用是来源于http://www.cnblogs.com/dolphin0520/p/3799052.html 这个是叫一个梅子的人写,要是你们想更具体的了解可以访问前面的网址. ★ 我这里写的主要是我感觉有用的解析及代码: 1,static 关键字的接是: (1)static方法就是没有this的方法.在static方法内部不能调用非静态方法,反过来是可以的. (2) 而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用static方法

c/c++中static关键字的作用【转】

1.先来介绍它的第一条也是最重要的一条:隐藏.(static函数,static变量均可) 当同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性.举例来说明.同时编译两个源文件,一个是a.c,另一个是main.c. //a.c char a = 'A'; // global variable void msg() { printf("Hello\n"); } //main.c int main() { extern char a; // extern varia

Java中static关键字的作用和用法详细介绍

static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念. 被static修饰的成员变量和成员方法独立于该类的任何对象.也就是说,它不依赖类特定的实例,被类的所有实例共享. 只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们.因此,static对象可以在它的任何对象创建之前访问,无需引用任何对象. 用public修饰的static成员变量和成员方法本质是全局变量和全局方法,当声明它类

C语言中static关键字的作用

static的作用(精辟分析) 在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条. (1)先来介绍它的第一条也是最重要的一条:隐藏. 当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性.为理解这句话,我举例来说明.我们要同时编译两个源文件,一个是a.c,另一个是main.c. 下面是a.c的内容 char a = 'A'; // global variable void msg()  {     printf("Hello\n"

java中static关键字的作用

在java语言中有四种使用情况:成员变量.成员方法.代码块和内部类 (1)static成员变量 java中可以通过statin关键字修饰变量达到全局变量的效果.static修饰的变量(静态变量)属于类,在类第一次通过类加载器到jvm时被分配内存空间. (2)static成员方法 static修饰的方法属于类方法,不需要创建对象就可以调用.static方法中不能使用this和super等关键字,不能调用非static方法,只能访问所属类的静态成员变量和静态方法. (3)static 代码块 JVM

static关键字的作用

static可以用来定义静态成员变量.静态函数.静态代码块. 静态成员变量的语法特点 定义方法:在成员变量前面加上static class Person{ static int i; //静态成员变量 } 在普通的成员变量中,成员变量的值是属于单个对象的,修改某个成员变量的值对其他成员变量来说是没有影响的. 在静态的成员变量中,所有的对象使用的成员变量是同一个,值也一样.当静态成员变量的值被修改了,对象的成员变量值也跟着变化. 静态成员变量可以直接用类名来调用,也可以用对象来调用静态成员变量.

09.static关键字的作用

静态成员变量的语法特点 可以用类名调用,也可用对象调用 静态成员变量和普通成员变量的对比 所用对象使用的静态成员变量都是同一份 静态成员变量属于类,而不属于对象 静态成员变量中任意一个成员变量的值的修改,其他所有成员的值也会修改 classPerson{ staticint i; } classTest{ publicstaticvoid main(String args []){ Person p1 =newPerson(); Person p2 =newPerson(); Person.i

17.static关键字的作用

静态成员变量的语法特点 静态函数的语法特点 静态代码块的语法特点 静态成员变量特点 1.可以直接用类名调用也可以用对象调用 2.所有的静态成员变量 都使用同一个内存地址存放值 静态函数的特点 可以直接用类名调用 不能用非静态的成员变量 (静态函数中不能用this ) 静态代码块的语法特点 静态代码库没有名字 在装载类的时候 就执行静态代码块,无需调用 静态代码块的主要作用是为静态成员变量赋值