|||
可以声明指向常量的指针,此时不同通过指针来改变所指对象的值,但指针本身可以改变,可以指向另外的对象,如:
const char *name1 = “John”; //name1是指向常量的指针
char s[ ] = “abc”; //定义一个字符数组
name1 = s; //对,name1本身的值可以改变(赋予一个新的地址)
*name1 = “1”; //错,name1指向的值是常量,不能改变
可以声明指针类型的常量,这时指针本身的值不能改变,但所指对象的内容可以改变,如:
char *const name2 = “John”; //name2是一个常指针(指针常量)
name2 = “abc”; //错,name2是常量,本身的值不能改变
关于对象指针:对象同时包含了数据和函数两种成员,与一般变量略有不同,对象所占据的内存空间只用于存放数据成员,函数成员不会在每一个对象中存储副本。对象指针就是用于存放对象地址的变量。
关于this指针:
this指针是一个隐含于每一个类的成员函数中的特殊指针(包括构造函数和析构函数),它用于指向正在被成员函数操作的对象。this指针明确指出成员函数当前所操作的数据所属的对象。实际过程是,当通过一个对象调用成员函数时,系统先将该对象的地址赋给this指针,然后调用成员函数,成员函数对对象的数据成员进行操作时,就隐含使用了this指针。