问题描述:指针与const限定符关系相关复杂,不同的组合就会有不同的意义,让人很犯晕,下面总结一个很实用的识别方法。
示例:说出下面指针与const限定符结合后所代表的意义
1、const char *p
2、char const *p
3、char* const p
4、const char* const p
下面介绍一个简单的判断方法:
例1:首先我们从右往左看,写成括号的优先级就是(const (char (*p))),由最里面的括号可以知道p是一个指针,再到外面一个括号可以知道p是一个指向char类型的指针,再到最外面一个括号可以知道p是一个指向const char类型的指针。
例2:我们也是从右往左看,写成括号的优先级(char (const (*p))),由最里面的括号可以知道p是一个指针,再到外面的括号可以知道p是一个const型指针,再到最外面一个括号可以知道p是一个指向char类型的const型指针。
例3:写成括号的优先级(char (*(const p))) ,由最里面的括号可以知道p是一个const型变量,再到外面的括号可以知道p是一个const型指针,再到最外面一个括号可以知道p是一个指向char类型的const型指针
例4:写成括号的优先级(const (char (* (const p)))),由最里面的括号可以知道p是一个const型变量,再到外面的括号可以知道p是一个const型指针,再到外面的括号可以知道p指向的一个const char类型的变量。
本文通过四个实例详细解析了C/C++中指针与const限定符的不同组合方式及含义,提供了一种简单易懂的判断方法。
2787

被折叠的 条评论
为什么被折叠?



