const类型的指针是否可变问题
2017-02-24 14:38
169 查看
const int *p; // p 可变,p 指向的对象不可变
int const *p; // p 可变,p 指向的对象不可变
int *const p; // p 不可变,p 指向的对象可变
const int *const p; //指针p 和p 指向的对象都不可变
在平时的授课中发现学生很难记住这几种情况。这里给出一个记忆和理解的方法:
先忽略类型名(编译器解析的时候也是忽略类型名),我们看const 离哪个近。“近水楼
台先得月”,离谁近就修饰谁。
const int *p; //const 修饰*p,p 是指针,*p 是指针指向的对象,不可变
int const *p; //const修饰*p,p 是指针,*p 是指针指向的对象,不可变
int *const p; //const修饰p,p 不可变,p 指向的对象可变
const int *const p; //前一个const 修饰*p,后一个const 修饰p,指针p 和p 指向的对象
都不可变
int const *p; // p 可变,p 指向的对象不可变
int *const p; // p 不可变,p 指向的对象可变
const int *const p; //指针p 和p 指向的对象都不可变
在平时的授课中发现学生很难记住这几种情况。这里给出一个记忆和理解的方法:
先忽略类型名(编译器解析的时候也是忽略类型名),我们看const 离哪个近。“近水楼
台先得月”,离谁近就修饰谁。
const int *p; //const 修饰*p,p 是指针,*p 是指针指向的对象,不可变
int const *p; //const修饰*p,p 是指针,*p 是指针指向的对象,不可变
int *const p; //const修饰p,p 不可变,p 指向的对象可变
const int *const p; //前一个const 修饰*p,后一个const 修饰p,指针p 和p 指向的对象
都不可变
相关文章推荐
- 关于const指针和指向const类型的指针的问题
- C++中四种类型转换以及const_cast是否能改变常量的问题
- C++中四种类型转换以及const_cast是否能改变常量的问题
- C++中四种类型转换以及const_cast是否能改变常量的问题
- C++中四种类型转换以及const_cast是否能改变常量的问题
- 函数返回类型为指针类型时的一些问题
- C语言函数返回类型为指针时的一些问题
- C++中的const关键字系列——常类型与常指针之间的纠缠
- 函数返回类型为指针类型时的一些问题
- C++关于参数为const引用类型的函数调用参数成员函数的一个问题
- 未处理的“System.NullReferenceException”类型的异常。指针作为形参初始化问题
- const”类型的指针“
- Struts2 用 s:if test 判断String类型的对象属性值和单字符是否相等的问题
- 如何把一个字符串填充到一个无类型的指针 - 回复 "豪杰的爸爸" 的问题
- 函数返回类型为指针类型时的一些问题
- 函数返回类型为指针类型时的一些问题
- c++数据类型--指针、字符串、const、引用
- 数组类型与数组指针的巧妙利用 - 回复 "Delphier" 的问题
- 为什么要用this指针,为什么是const类型的
- 函数返回值是否使用引用类型的问题:理解引用、返回值