指针我是这么理解,一个是获取了指向指定对象的地址,还有一个是同时也获取了该对象本身的值。
*关键字用于标识是否为指针对象,如:
int y = 5;
int *i = &y;
i就是一个指针变量,如果输出i的值则是一串八位地址符,它代表了y变量所在的内存地址。
如果输出*i则是输出5,因为*i则代表了y变量内存地址对应的实际值即5;
理解指针就必须理解变量的内存地址和实际值的概念,变量定义和赋值后内存会划分一块空间给它,这块空间有独立的编号,在这块空间号里存储该变量赋值的实际值。 如果后续程序的需要对该变量的值进行改变也不会更改它的地址编号,只会改变它的实际值。如这段代码:
int x = 3;int *const p = &x;
cout << x << "," << &x << endl;
x = 111121;
cout << "指针p的值:" << p << endl;
cout << "指针p指向的值:" << *p << endl;
cout << "整型x的值:" << x << endl;
cout << "整型x的地址:" << &x << endl;
输出的结果是:
3,0044FEF4
指针p的值:0044FEF4
指针p指向的值:111121
整型x的值:111121
整型x的地址:0044FEF4