關於指針和const限定符問題的一個簡單判斷方法

問題描述:指針與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類型的變量。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章