這是一道面試題
#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函式只可被這...