search
尋找貓咪~QQ 地點 桃園市桃園區 Taoyuan , Taoyuan

C語言筆試題const char p;在文中三者的區別

首先要解釋下為什麼文章標題只有一個因為最多30個字元!所以請見諒、

請看下面三種定義:

const char *p;

char const *p;

char * const p;

請問,三者有什麼區別呢?

筆者在之前好多家筆試題種都看到這樣的問題,今天想起又拿出重新梳理一下,便於後人學習。

首先看第一種,我們先看p,本著」從里往外」的原則,p是一個char *類型的變數,但char *前面有一個const修飾,即p所指向的內容為const類型不可修改,我們可以寫如下程序進行實驗,當試圖對p指向的數組的第一個元素進行修改時,編譯即可發現報錯:

C語言C++學習交流369203660

第二種:char const *p; const位於char *之間,由於char *是p的類型,此種寫法和const char *等價,大家可以自行實驗,如下圖:

C語言C++學習交流369203660

最後一種,char * const p; 這裡const在p之前,修飾的是p,即p是不可修改的,所以,我們可以實驗:

C語言C++學習交流369203660

可以看到沒有錯誤,p所指向的內容可以修改,而如果試圖修改p的值,如下:

C語言C++學習交流369203660

可以發現依舊是報這個錯誤,大家可以親自上機實驗,來加深理解。或者加學習交流群C語言C++學習交流369203660



熱門推薦

本文由 yidianzixun 提供 原文連結

寵物協尋 相信 終究能找到回家的路
寫了7763篇文章,獲得2次喜歡
留言回覆
回覆
精彩推薦