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 char *p 表示 指向的内容不能改变。

char * const p,就是将P声明为常指针,它的地址不能改变,是固定的,但是它的内容可以改变。

猜你喜欢

转载自www.cnblogs.com/oldyogurt/p/9120498.html
今日推荐