static与const

static的作用

1、面向过程中的static

静态全局变量:

  1. 该变量在全局数据区分配内存;
  2. 未经初始化的静态全局变量会被程序自动初始化为0;
  3. 声明它的整个文件都是可见的,在文件之外不可见;

静态局部变量:

  1. 该变量在全局数据区分配内存;
  2. 在程序执行到该对象的声明处时被首次初始化,以后的函数调用不再进行初始化;
  3. 声明处初始化,如果没有默认为0;
  4. 始终驻留在全局数据区,指导程序运行结束。但其作用为局部作用域;

静态函数:

  1. 不能被其他文件所用;
  2. 其他文件中可以定义相同名字的函数;

2、面向对象中的static

静态数据成员:

  1. 分配一次内存,本类所有对象共有;
  2. 存储在全局数据区,定义时要分配空间,不能在类声明中定义。

静态成员函数:

不具有this指针,无法访问属于类对象的非静态数据成员、非静态成员函数。只能访问静态成员和其他静态成员函数。

const的作用

1、限定变量未不可修改。

2、限定成员函数不可以修改任何数据成员。

3、const与指针:

const 修饰指针指向的内容,则内容为不可变量。const int *p = 8

const 修饰指针,则指针为不可变量。int const *p

const 修饰指针和指针指向的内容,则指针和指针指向的内容都为不可变量。const int * const p

注意:const关键字不能与static关键字同时使用,因为static关键字修饰静态成员函数,静态成员函数不含有this指针,即不能实例化,const成员函数必须具体到某一实例。

 

posted @ 2018-06-01 10:32  还我酸奶  阅读(301)  评论(0编辑  收藏  举报