charconst p與const charp之間的區別是什麼

2022-03-08 19:34:06 字數 3541 閱讀 7562

1樓:段幹睿思彤瑗

前者定義p為常量,即只能單向賦值一次,p++為p=p+1,重複賦值給常量,出錯,後者p為地址變數,地址變數是指向該變數的儲存地址值如:4b3f6a,不能賦給一個字元值(字元相當於ascii表中對應的整數)如強制賦值,會把原地址變數p變為一個兩位數的整數,造成地址指標溢位。而p++,則表示把該地址變數向下一個儲存單元移動一位,如4b3f6a到4b3f6b.

所以合法。

2樓:康詠思

char *const p 是指標常量,通俗的解釋:指標本身是一個常量 也就是不能改變該指標的指向性,可以改變指向的量的值

const char *p 是常量指標,解釋:指向常量的指標,指標指向的量是常量,不能改變指標所指向的量的值,可以改變指向性

3樓:迷戀_哈哈

一個是把指標定為const 。就是不能修改指標。也就是char * const p

一個是把指標指向的內容定為const 。就是不能修改指標指向的內容 也就是const char *p

簡單來記就是你看const距離char近還是*近。距離char近就是將char型別的內容定為cosnt

距離*近就是把指標定為const

4樓:匿名使用者

一個是char另一個是常量

char *const p 與 const char * p char const * p 的區別

5樓:匿名使用者

const char * p 和 char const * p 是一個意思,都是p所指向的變數的值不能改變,例如:

const char ch = 'a';

const char* p = &ch;

*p = 'b'; //這樣是錯的

char* const p,意思是p所指向的地址是不能改變的,例如:

char* const p = &ch1;

p = &ch2; //這樣是錯的

char const *p char *const p const char * p 三者的區別

6樓:

第一個和第三個是一樣的, p都是指向const char型別的指標, 不可以賦值給*p, 就是不可通過這個指標改變它指向的值.

第二個: char * const p是指向char的常指標, 指標需在宣告時就初始化, 之後不可以改變它的指向.

char *const p;與 const char * p;的區別

7樓:北漂碼農

const char *p;的意思是p指向的目標空間的內容不可變化,char * const p;的意思是指標p的值不可變,但它指向目標的值可變。

1、char * const p : 定義一個指向字元的指標常數,即const指標,其實const 放在p前證明p是一個const,p是不允許改變的。

2、const char* p : 定義一個指向字元常數的指標,const 是c描述char的,char是const,所以指標可變。

擴充套件知識:

char const* p : 等同於const char* p;const char **p是一個指向指標的指標,那個指標又指向一個字串常量,char ** p也是一個指向指標的指標,那個指標又指向一個字串變數。

8樓:匿名使用者

前者定義p為常量,即只能單向賦值一次,p++為p=p+1,重複賦值給常量,出錯,後者p為地址變數,地址變數是指向該變數的儲存地址值如:4b3f6a,不能賦給一個字元值(字元相當於ascii表中對應的整數)如強制賦值,會把原地址變數p變為一個兩位數的整數,造成地址指標溢位。而p++,則表示把該地址變數向下一個儲存單元移動一位,如4b3f6a到4b3f6b.

所以合法。

9樓:漸進_恐慌

const char  * p等價於 char const  *p ,定義出來的指標可以p++;

char * const 定義出來的指標不可以++;

const 表「只讀」

10樓:匿名使用者

char *const p 修飾指標為常量 指標指向內容可以是變數~既 p++這樣的操作不合法 *p='3' 合法

const char * p 是p指向的內容是常量~p是變數~

~既 p++合法 *p='3' 不合法

char *和const char *是相同的型別嗎,為什麼

11樓:南京新華電腦專修學院

char * const p是一個char型指標,指標是常量,不允許修改,即類似p=q的語句是錯誤的; char const * p和const char * p是同一種char型指標,指標指向的字元被看作是常量,不允許修改,即類似*p = q的語句是錯誤的。

const char **p 、 char *const *p 、 char **const p的區別?

12樓:丹竹僧採文

前者定義p為常量,即只能單向賦值一次,p++為p=p+1,重複賦值給常量,出錯,後者p為地址變數,地址變數是指向該變數的儲存地址值如:4b3f6a,不能賦給一個字元值(字元相當於ascii表中對應的整數)如強制賦值,會把原地址變數p變為一個兩位數的整數,造成地址指標溢位。而p++,則表示把該地址變數向下一個儲存單元移動一位,如4b3f6a到4b3f6b.

所以合法。

13樓:梅溪夢窗

``const char *p" (也可以寫成 ``char const *p") 宣告瞭一個指向字元常量的指標, 因此不能改變它所指向的字元; ``char * const p" 宣告一個指向 (可變) 字元的指標常量, 就是說, 你不能修改指標。

14樓:匿名使用者

我告訴你應該怎麼看變數宣告吧,看變數宣告的時候應該從右至左看,以

char *const *p

為例:先看從右至左第一個符號*,這表明變數p是指標,再看第2個符號const,它修飾的是*p,*p表示p指向的內容,所以,p指向的內容是常量,下一個符號是*,這就表示該常量為指標,然後是char,就表示指向的內容是char

15樓:匿名使用者

const char *p;他的意思是p指向的目標空間的內容不可變化

char * const p;是表明指標p的值不可變,但它指向目標的值可變

而char **的型別是「指向char型別的指標的指標(poitter to poitter to char)。」

const char **型別不是一個具有限定符的指標型別,它的型別是「指向有const限定符的char型別的指標的指標(poitter to poitter to const char)。」

即:char **和const char **都是沒有限定符的指標型別,但他們所指向的型別不一樣(前者指向char *,後者指向const char*),因此他們是不相容的。

cisco 3560的路由器如何用console口配置

使用配置線連線電腦的序列介面 口及路由器的console口 在電腦的附件 通訊中啟動超級終端,並且設定其埠為 口,通訊速率及其他引數取預設值 連線後連續打回車鍵就可以連線到路由器了。如果有登入密碼還要輸入登入密碼才能進入特權模式。用crt遠端,一頭連線到電腦,一頭連線到35的console的藍色口,...

配置交換機時,在何種情況下必須採用console口本地登入對

console是管理口,一般第一次配才需要使用,或者網路安全環境要求非常高,不開tel web管理的才使用,一般交換機配一次,以後都是遠端管理,那個還跑過去使用console口管理,累 思科裝置配置console口密碼為什麼要加一個login才生效 login就像一個開關,所有的配置 包括vty,c...

交通與數學,數學與交通,嘗試與猜測,數學與生活概念有哪些

十字交叉 t型交叉 t型交叉 t型交叉 y型交叉 環型交叉向左急彎路 向右急彎路 反向彎路 連續彎路 上陡坡 下陡坡兩側變窄 右側變窄 左側變窄 窄橋 雙向交通 注意行人注意兒童 注意牲畜 注意訊號燈 注意落石 注意橫風易滑 傍山險路 提壩路 村莊 隧道 渡口 駝峰橋 路面不平 過水路面 有人看守鐵...