关于指针和const限定符问题的一个简单判断方法

来源:互联网 发布:美工编辑岗位职责 编辑:程序博客网 时间:2024/06/18 08:26

问题描述:指针与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类型的变量。


原创粉丝点击