~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
开发工具与关键技术:VS2015与 C++
撰写时间:2019/04/22
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- 可以通过名访问/地址访问对象
- 访问形式只有读和写
通过名访问,即是通过变量名访问对象。
例如:int a;
a = 1;
其中的 a 就是变量名。
通过地址访问,地址是内存单元由操作系统按字节编号,一个对象占有内存的第一个字节。
例如:int a = 1;
cout << &a << endl;
&a 中的“&”是(取地址操作)取址符
*a 中的“*”是(间址访问操作)解址符
- 指针变量与间址访问
指针变量是能够存放对象地址的变量。
定义一个指针变量:int *p = NULL;(空指针)
指针赋值:int a = 10; p = &a;
间址访问对象:
例如:int a = 0;
int *x = &a;
*x = 10;
Void 类型的指针可以存放任意内存地址,在使用它的时候必须带上强制转换。
例如: int a = 10;
void *x = &a;
cout << * (int*)x << endl;
- 引用 “&”,引用只能在定义时初始化,相当于别名,操作别名相当于操作原值。
例如:int a = 0;
Int &b = a;
b = 2;//那么a也是2
- 常量和约束访问
关键字是 const :约束对象的访问性质,使对象只能读不能写
常量的定义:const int a = 10;
- 指向常量的指针
定义:int a = 10; int c = 20;
const int *b = &a;
//*b = 100; 错误
b = &c;
即不可通过间址的访问修改对象的值,但是可以通过修改地址
- 指针常量
定义:int a = 10; int c = 20;
int *const b = &a;
*b = 100;
// b = &c; 错误
即可以通过间址访问修改值,不可修改地址
- 指向常量的指针常量
定义:int a = 10; int c = 20;
const int *const b = &a;
//*b = 100; 错误
// b = &c; 错误
即不可以通过间址访问修改值, 不可修改地址
- 常引用
定义:int a = 10;
const int &b = a;
//b = 20;错误
即不可以通过引用“b”来修改 “a”的 值了