一  static的使用 (作用域和存储方式)

1.作用域---------->隐藏

静态函数跟静态全局变量的作用类似 (静态函数不能被其它文件所用; 其它文件中可以定义相同名字的函数,不会发生冲突)

int a = 10;

void add()

{

static int a=0;        //对该函数进行隐藏,只作用于该函数内,这个函数只执行一次,下次就不会再给a 进行赋值操作

printf("a = %d",a);

}

int main()

{

` a++;

add();

printf("a = %d",a);

}

结果 : a=0     a=10;

函数(static 里面不包含this指针)

a.静态函数只能访问静态成员变量(不需要this指针)

b.静态函数不能访问普通成员函数,反之成立(静态成员函数没有this指针)

2. 存储方式-------------->共有的(它的值会被保存,下次调用仍保持上一次数值)

a.局部变量 : 在该函数执行变量结束后,该变量不会被释放,继续保存

b.全局变量 : 表示当变量在全局内都可以访问

c.类成员变量 : 表示这个变量为全类所有的(所有对象都公用这个变量,它不是某一个对象的私有的)

二   const的使用 (只具有读的工能)

  1. const 常量:定义时就初始化,以后不能更改。
  2. const 形参:func(const int a){};该形参在函数里不能改变
  3. const修饰类成员函数:该函数对成员变量只能进行只读操作
  4. 可以作为重载函数  void  func(Test  * const this(默认的)) const ---------=>void  func(const  Test * const this):这个函数只具有读的功能,不能对对其变量进行修改

    因为this指针为常量,不能变化,它和static成员函数类似,普通函数可以访问常成员函数,反之则不成立.常成员函数只能访问常成员变量

三   不同点

static : 为静态变量,只和类有关系,和对象无关,即使没有对象也可以调用静态函数和变量.

数据类型 类名::静态数据成员名=值    int Test::a = 10;

const : 初始化必须有构造函数初始化,不同对象const的数值不一样.

 

C++ const 和static的总结以及使用的更多相关文章

  1. const extern static 终极指南

    const extern static 终极指南 不管是从事哪种语言的开发工作,const extern static 这三个关键字的用法和原理都是我们必须明白的.本文将对此做出非常详细的讲解. co ...

  2. const、static和extern的正确使用方式

    我们在看一些大牛的第三方时,里面会出现很多const.static和extern,尤其是const和static,const和extern的结合使用,直接令很多小伙伴懵逼了,今天就详细讲解一下这三个关 ...

  3. 《OOC》笔记(1)——C语言const、static和extern的用法

    <OOC>笔记(1)——C语言const.static和extern的用法 C语言中const关键字用法不少,我只喜欢两种用法.一是用于修饰函数形参,二是用于修饰全局变量和局部变量. 用c ...

  4. 到底是 const 还是 static readonly

    真的一样? const 和 static readonly 常在程序中用来声明常量,调用方法也没有什么不同,他们真的一样吗?我们可以做个试验. 程序集内的常量 现在我们建立一个程序,里面有一个MyCl ...

  5. C: const and static keywords

    原文:http://www.noxeos.com/2011/07/29/c-const-static-keywords/ C: const and static keywords Ok, once a ...

  6. 【转】const和static readonly

    我们都知道,const和static readonly的确很像:通过类名而不是对象名进行访问,在程序中只读等等.在多数情况下可以混用.二者本质的区别在于,const的值是在编译期间确定的,因此只能在声 ...

  7. (C#) What is the difference between "const" and "static readonly" ?

    const int a must be initialized initialization must be at compile time readonly int a can use defaul ...

  8. (转) C++ static、const和static const 以及它们的初始化

    const定义的常量在超出其作用域之后其空间会被释放,而static定义的静态常量在函数执行后不会释放其存储空间. static表示的是静态的.类的静态成员函数.静态成员变量是和类相关的,而不是和类的 ...

  9. C# const与static的理解

    C#  const与static的理解 static readonly与 const变量,作用是一样的,无论访问修饰符是不是public,还是其它(private. protected.interna ...

  10. c#中const、static、readonly的区别

    1. const与readonly const ,其修饰的字段只能在自身声明时初始化. Readonly 是只读变量,属于运行时变量,可以在类初始化的时候改变它的值.该类型的字段,可以在声明或构造函数 ...

随机推荐

  1. 搭建事务管理转账案例的环境(强调:简化开发,以后DAO可以继承JdbcDaoSupport类)

    1. 步骤一:创建WEB工程,引入需要的jar包 * IOC的6个包 * AOP的4个包 * C3P0的1个包 * MySQL的驱动包 * JDBC目标2个包 * 整合JUnit测试包2.步骤二:创建 ...

  2. PHP-GTK的demo在windows下运行出现的问题

    I am trying to use Firebird 2.5.2.26539 with wamp,When i enable the extensions of firebird in php: - ...

  3. DB2 SQL1477N问题

    ERROR [55019] [IBM][DB2/NT] SQL1477N  For table "DB_YHJX.YHJX_FHDKFHZ" an object "521 ...

  4. 还不好好读书吗?清华3D录取通知书出炉,还能动!

    近日,清华大学2018录取通知书“亮相”!看完后,网友直呼:哪里可以买到? 打开录取通知书 3D“二校门”跃然纸上 由清华师生共同打造.手工定制.独一无二的2018新版录取通知书来了!在新版录取通知书 ...

  5. [SoapUI] Datasink怎么显示每次循环的结果

    https://www.soapui.org/reporting/the-report-datasink.html

  6. jps 命令详解

    jps 命令详解 jps 是 jdk 提供的一个查看当前 java 进程的小工具, 可以看做是 JavaVirtual Machine Process Status Tool 的缩写.非常简单实用. ...

  7. 测试这个才可以打包 我的PYQt matplotlib numpy 等程序

    from distutils.core import setup import py2exe import matplotlib import sys import FileDialog import ...

  8. 《Just for Fun》---读后感

    <Just for Fun>本书是Linux之父林纳斯自传,书名的意思是:只是为了好玩.主要是讲了林纳斯的人生经历,以及Linux的诞生过程.Linux从一个终端仿真器到一个世界瞩目的操作 ...

  9. 2018.10.20 NOIP模拟 面包(数学期望)

    传送门 把方差的式子拆开. 方差=平方的期望-期望的平方. 显然只用维护点对的个数和总方案数就行了. 利用分步的思想来统计. 要统计覆盖一个矩形(x1,y1,x2,y2)(x1,y1,x2,y2)(x ...

  10. 2018.10.14 loj#516. DP 一般看规律(启发式合并)

    传送门 注意到一种颜色改了之后就不能改回去了. 因此可以启发式合并. 每次把小的合并给大的. 这样每个数最多被合并logloglog次. 如果维护一棵比较下标的平衡树的话,对于答案有贡献的就是每个数与 ...