我明白这个是什么意思 也明白怎么去修改但是我不明白一个变量加了static 和 不加 static的区别和调用这个变量(加static或不加)的时候  对于static 到底有什么限制?

解决方案 »

  1.   

    1,表示变量是静态存储变量 
    表示变量存放在静态存储区.   
    2,表示该变量是内部连接   一、在面向过程设计中的static关键字   
        
      1、静态全局变量   
        
      定义:在全局变量前,加上关键字   static   该变量就被定义成为了一个静态全局变量。   
        
      特点:   
        A、该变量在全局数据区分配内存。   
        B、初始化:如果不显式初始化,那么将被隐式初始化为0。   
        C、访变量只在本源文件可见,严格的讲应该为定义之处开始到本文件结束。     
        
        例(摘于C++程序设计教程---钱能主编P103):         
              #include<iostream.h>   
              void   fn();   
              extern   int   n;   
              void   main()   
              {   
                n=20;   
                cout   <<   n   <<   endl;   
                fn();   
              }     
        
              //file2.cpp   
              #include<iostream.h>   
        
              static   int   n;   //定义静态全局变量,初始化为0;   
              void   fn()   
              {   
                n++;   
                cout   <<   n   <<   endl;   
              }   
        
        文件分别编译能通过,但连接时file1.cpp   中的变量n找不到定义,产生连接错误。   
        
        D、文件作用域下声明的const的常量默认为static存储类型。   
      

  2.   

    当声明一个事务是static的时候  就意味着这个域或者方法不会与他的那个类的任何对象实例关联在一起。LZ可以好好理解这句话。 这句话概括了所有的问题。
      

  3.   

    static成员属于一个类
    非static成员属于一个对象,
    static方法可以使用static成员,
    非static方法既可以使用static成员也可以使用非static成员