關於CONST關鍵字的乙個小題

2021-10-24 11:45:42 字數 996 閱讀 9467

這是一道面試題

#include

"stdio.h"

intmain()

else

printf

("\\=");

return0;

}

是否相等呢? 先思考一下 下面會給出答案。~~

~~~~

~~~~

~~~~

~~~~

*1、const char p 表示 指向的內容不能改變

2、char * const p,就是將p宣告為常指標,它的位址不能改變,是固定的,但是它的內容可以改變

其實這題考const也是迷惑人,有的人會覺得指標位址不一樣 所以肯定不相等。

但其實無論是加不加const

無論是

const

char

*str1=

"123"

;const

char

*str2=

"123"

;

還是`

char

const

*str1=

"123"

;const

char

*str2=

"123"

;

甚至

char

*str1=

"123"

;char

*str2=

"123"

;

答案都是相等的,因為編譯器會對**進行優化,指標位址都一樣。

大家可以敲一敲試一下。

關於const關鍵字

const es6新增關鍵字,用於宣告建立乙個值的唯讀引用。我們都知道,const一般用來定義常量,在宣告的時候需要賦初始值,而且初始值一旦賦值,便不能改變。但是以上說的是針對於基本型別資料的定義,對於引用型別的定義,不可變的是const繫結的指標,而它的屬性可以任意修改。說人話 如果我用const...

(一)const關鍵字

一 對於 const 關鍵字我在這裡說一下在 c 語言中的使用 第乙個需要理解的是const修飾的是變數 修飾變數的目的是為了使得該變數唯讀 二 為什麼要使用 const 關鍵字 方便 閱讀,清楚的告訴其他人程式哪些變數是不可以被修改的 同時也可以方便自己 的書寫,因為寫的 量過大,一些變數你不希望...

static關鍵字和const關鍵字的作用

static關鍵字至少有下列n個作用 1 函式體內static變數的作用範圍為該函式體,不同於auto變數,該變數的記憶體只被分配一次,因此其值在下次呼叫時仍維持上次的值 2 在模組內的static全域性變數可以被模組內所用函式訪問,但不能被模組外其它函式訪問 3 在模組內的static函式只可被這...