顶层const与底层const
2017-01-05 23:01
162 查看
/*顶层const与底层const
*const :常量
*/
#include <iostream>
using namespace std;
int main()
{
int a1 = 1;
int* p1 = &a1; --> p1是指针指向a1
int*& r1 = p1; --> r1 是 p1 的别名
int* const k1 = &a1; -> k1 指向 a1, k1不能改变指向
int* const& t1 = k1; -> t1 是 k1 的别名
const int a2 = 2; -> a2 是常量
const int* p2 = &a2; -> p2 指向 a2, 不能通过 p2 改变 a2
const int*& r2 = p2; -> r2 是 p2 的别名
const int* const r3 = &a2; -> r3 指向 a2
r3 不能改变指向
不能通过 r3 改变 a2
const int* const& r4 = r3; -> r4 是 r3 的别名
const int& a3 = 1000; -> a3 是一个常量的别名
----------------------------------------
底层const 顶层const
\|/ \|/
const int* const p = &a;
底层const: 表示指针所指向的变量是个常量
顶层const: 表示指针本身是个常量
指针本身是一个对象,指针实际对应着内存单元的一段存储空间,指针所指向的也是一个数据对象,
因此,指针是一个常量与指针所指向的是一个常量是两个完全不同的概念
}
*const :常量
*/
#include <iostream>
using namespace std;
int main()
{
int a1 = 1;
int* p1 = &a1; --> p1是指针指向a1
int*& r1 = p1; --> r1 是 p1 的别名
int* const k1 = &a1; -> k1 指向 a1, k1不能改变指向
int* const& t1 = k1; -> t1 是 k1 的别名
const int a2 = 2; -> a2 是常量
const int* p2 = &a2; -> p2 指向 a2, 不能通过 p2 改变 a2
const int*& r2 = p2; -> r2 是 p2 的别名
const int* const r3 = &a2; -> r3 指向 a2
r3 不能改变指向
不能通过 r3 改变 a2
const int* const& r4 = r3; -> r4 是 r3 的别名
const int& a3 = 1000; -> a3 是一个常量的别名
----------------------------------------
底层const 顶层const
\|/ \|/
const int* const p = &a;
底层const: 表示指针所指向的变量是个常量
顶层const: 表示指针本身是个常量
指针本身是一个对象,指针实际对应着内存单元的一段存储空间,指针所指向的也是一个数据对象,
因此,指针是一个常量与指针所指向的是一个常量是两个完全不同的概念
}
相关文章推荐
- 顶层const与底层const
- 顶层const和底层const
- C++中的顶层const和底层const
- 顶层 const 与底层 const
- 指针与引用的初始化&顶层底层const变量初始化问题
- C++ const限定符之顶层const & 底层const & 指针 & 引用之间的关系
- C++中顶层const和底层const
- 如何区分顶层const和底层const
- 顶层const 与底层const
- const 限定符、const引用、const指针,顶层const和底层const
- 顶层const 与底层const
- 顶层const与底层const
- c++之顶层const和底层const的区别
- 顶层const和底层const
- C++的顶层const和底层const的理解
- 顶层const和底层const
- C++ 底层const&顶层const与引用
- C++的顶层const和底层const的理解
- [C++] cosnt指针-顶层const和底层const
- 顶层const和底层const的区别