您的位置:首页 > 其它

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

2017-07-20 15:38 309 查看

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类型,以使得其返回值不为左值类型。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: