C C 中const關鍵字詳解

2021-07-29 15:32:52 字數 812 閱讀 1316

1 問題描述

2 解答

不用死記!  理解記憶 

遇到const修飾的時候,從右向左讀 最容易區分  如: const int *p1;//則const 修飾的是int *p1說明這個變數是不能變的,就是p1所指向的變數是常量變數  

int const *p2 = &i; //const修飾的是  *p2(表示所指向的變數)說明p2所指的變數不能改變,也就是 指向常量變數。  

int *const p3 = &i;  //const修飾的是  p3說明指標變數的值不能改變,也就是不能讓p3指標再指向其他值

const int*p1表示p1的內容為常量不可變

int const*p2表示p2的內容為常量不可變

int*const p3表示p3指標本身為常量不可變

const int *p1;//ok(1)  關鍵字const出現在*左邊 表示*p1是常量,而p1不是常量,可以不必須初始化   

int const*p2=&i; //ok(2)與(1)等價 ,*p2是常量,而p2不是常量   

p2=&j;//(3)ok,p2取j的位址   

int*const p3=&i;//(4) 出現在星號右邊,表示指標自身是常量,必須初始化,這裡初始化為i的位址,不允許修改   

*p3=20;//(5)ok,修改p3所指向的內容,  

*p2=30;//(6)被指物是常量 error!  

p3=&j;//(7) 指標自身是常量 error!

C C 中const關鍵字

const經常被用到,所以今天總結一下const關鍵字的用法,常用的場景為修飾變數 c c 不同 修飾指標和引用,修飾函式引數,修飾函式返回值,修飾函式定義體 類 成員函式 1 修飾變數 cosnt在修飾變數時,在c和c 中是不同的。const int a 5 intarray a 在c語言中是錯誤...

C C 幾個關鍵字詳解 CONST

const 是由c 採用,並加進標準c中,但是他們的意義完全不同,在舊版本 標準前 的c中,如果想建立乙個常量,必須使用預處理器 define pi 3.14159 此後無論在何處使用pi,都會被預處理器以3.14159替代。編譯器不對pi進行型別檢查,也就是說可以不受限制的建立巨集並用它來替代值,...

C C 中const關鍵字相關

ansi c 允許使用const關鍵字來宣告 常量 const 常量 和普通變數一樣,只是它們的值不能修改。該處 常量 加引號的原因是,const變數只是read only,不能修改其值,的普通變數,只能用於允許使用變數的地方。故在編譯器沒有進行常量摺疊的時候 一般的c語言編譯器,也有其他的可以定義...