静态变量、全局变量、const常量

静态变量:指在程序编译阶段就就分配好内存空间
出现的意义:解决数据共享的问题。
1.静态局部变量:函数结束后,静态局部变量的内存空间不会被系统回收,下一次调用函数时使用上一次退出时的值。 
2.静态局部变量存储在静态存储区
3.静态局部变量如果未初始化,则编译器会将它初始化为0或者null

静态全局变量:只能在它声明的文件中使用,不能使用extern关键字引用。
静态全局变量和全局变量的区别:生命周期是相同的,但是静态全局变量的作用域缩小。
静态全局变量只能在它声明的源文件中使用,不能被extern引用

静态变量的生命周期均为整个源程序。

类的静态成员和非静态成员变量的区别:
每一个对象都会为它的非静态成员变量在内存中保留一块空间来存储各自的值,而对于类的静态成员变量整个类中只有一份拷贝,所有对象共享这块空间。

全局变量的意义:方便数据共享;(增加静态变量的意义是限制作用域,用static修饰后不能被extern修饰,只能在本源文件使用)

const用来限制一个变量是只读的,即不可变的:
const修饰变量
(1)常量指针:不能通过修改指针所指向的变量的值。但是指针可以指向别的变量。可以理解为指向常量的指针。
const int *p或者int const *p
(2)指针常量:指针本身是常量,指针本身不可以改变,但是指针指向的值是可以变的。
int *const p
(3)指向常量的常指针:const int * const p,指针不可以改变,指针指向的内容也不可以改变

const修饰成员函数
const int fun(const int a) const;
(1)const int 修饰还回值,表示不能修改还回值
(2)const int a修饰函数参数,表示函数参数a是不能改变的
(3)fun() const修饰的是整个函数,如果这个函数不是类的成员函数,则const是无意义的,如果是类的成员函数,表示函数体内不能修改长远变量的值,增加程序的健壮性和鲁棒性。

const修饰对象:
const对象只能调用const的函数

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值