static 与const的区别

static

  1. static局部变量将一个变量声明为函数的局部变量,那么这个局部变量在函数执行完不会释放,而是继续保留在内存中;
  2. static全局变量表示一个变量在当前文件的全局可以访问;
  3. static函数表示一个函数只能在当前文件中被访问;
  4. static类成员变量表示这个成员为全类所共有;
  5. static类成员函数表示这个函数为全类所有,且只能访问成员变量。
  6. 全局变量在整个工程文件内有效;静态全局变量只在定义它的文件中有效;
  7. 静态局部变量只在定义它的函数内有效,且程序只分配一次内存,函数返回时不会释放,下次调用时不会重新赋值,还保留上次结果值;局部变量在函数返回时就释放掉;
  8. 全局变量和惊天变量编译器会默认初始化为0;局部变量的默认值未知;
  9. 局部静态变量与全局变量共享全局数据,但是静态局部变量值在定义该变量的函数内部可见。
  10. 静态成员(静态成员函数)与配静态成员(成员函数)的区别在于有无this指针;静态成员是静态存储,必须进行初始化;
  11. 惊天成员函数访问非静态成员报错:静态成员在类加载时就已经分配内存,而此时非静态成员尚未分配内存,访问不存在的内存自然会报错;

const

  1. const常量 定义是必须初始化,以后不能修改;
  2. const形参 该形参在函数里不能被修改;
  3. const修饰类成员函数 该函数对成员变量只能进行读操作;

static关键字作用

  1. 函数体内static变量的作用范围为该函数体,该变量的内存只被分配一次,因此该值在下次调用时还维持上一次的值;
  2. 在模块内的static函数和变量可以被可以被模块内的函数访问,不能被模块外的函数访问;
  3. 在类内的static成员变量为整个类所有,类的所有对象只有一份拷贝;
  4. 在类内的static成员函数为整个类所有,这个函数不接收this指针,因此只能访问类的static成员变量;

const关键字

  1. 阻止一个变量被改变;
  2. 声明常量指针和指针常量;
  3. const修饰形参,表示为输入参数,在函数体内不能修改该参数的值;
  4. const修饰成员函数,表明为一个常函数,不能修改成员变量的值;
  5. 类的成员函数,有时必须返回const类型的值,使得返回值不能为左值。
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值