static和const关键字的作用(3)

static关键字

(1)函数体内的static变量,作用范围为该函数体,内存只被分配一次,其值在下次调用时仍然是上次的值。

(2)模块内的static全局变量,可被模块内所有函数访问,但不能被模块外的函数访问。

(3)模块内的static函数,可被模块内的其他函数调用,适用范围限定在声明它的模块内。

(4)类中的static成员变量, 属于类所有,对类的所有对象只有一份拷贝。

(5)类中的static成员函数,属于类所有,不接受this指针,只能访问类的static成员变量。类的静态成员,存在于任何对象之外,对象中不包含任何与静态数据成员有关的数据。通过作用于运算符直接访问。

class :: a;

const关键字

(1)欲阻止一个变量被改变,可使用const关键字。定义时进行初始化。

(2)对指针,可指定指针本身为const,表示指针中保存的地址不能被改变,这叫指针常量。可指定指针所指数据为const,表示不能通过指针来修改数据,这叫指向常量的指针,简称常量指针。二者也可同时指定为const。

int a;
int *p = &a;
const int *p1 = &a;
int * const p2 = &a;
const int * const p3 = &a;
//handle
*p++;   //yes
*p1++;  //error
p2++;   //error

(3)函数声明中,const可以修饰形参,表示这是一个输入参数,函数内部不允许修改其值。而且也提高了函数灵活性。普通变量不能绑定到const变量上,反之可以。这样不管实参是const还是普通变量,都可以传给该形参。

p1 = p; //yes
p = p1; //error, const int * cannot to int *

(4)类中的成员函数,若为const类型,表明是一个常量函数,内部不能修改类的成员变量。常变量可调用常量方法不能调用普通方法,普通变量可以调用常量方法,也可以调用普通方法。都是this指针的原理,将在下一篇详述。

(5)类的成员函数,有时其返回值为const类型,以使得其返回值不为左值类型。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值