我只要一聽到被面試者說:“const意味著常數”,我就知道我正在和一個業餘者打交道。去年Dan Saks已經在他的文章裡完全概括了const的所有用法,因此ESP(譯者:Embedded Systems Programming)的每一位讀者應該非常熟悉const能做什麼和不能做什麼.如果你從沒有讀到那篇文章,只要能說出const意味著“只讀”就可以了。儘管這個答案不是完全的答案,但我接受它作為一個正確的答案。(如果你想知道更詳細的答案,仔細讀一下Saks的文章吧。)如果應試者能正確回答這個問題,我將問他一個附加的問題:下面的宣告都是什麼意思?
const int a;
int const a;
const int *a;
int * const a;
int const * a const;
前兩個的作用是一樣,a是一個常整型數。第三個意味著a是一個指向常整型數的指標(也就是,整型數是不可修改的,但指標可以)。第四個意思a是一個指向整型數的常指標(也就是說,指標指向的整型數是可以修改的,但指標是不可修改的)。最後一個意味著a是一個指向常整型數的常指標(也就是說,指標指向的整型數是不可修改的,同時指標也是不可修改的)。如果應試者能正確回答這些問題,那麼他就給我留下了一個好印象。順帶提一句,也許你可能會問,即使不用關鍵字 const,也還是能很容易寫出功能正確的程式,那麼我為什麼還要如此看重關鍵字const呢?我也如下的幾下理由:
1). 關鍵字const的作用是為給讀你程式碼的人傳達非常有用的資訊,實際上,宣告一個引數為常量是為了告訴了使用者這個引數的應用目的。如果你曾花很多時間清理其它人留下的垃圾,你就會很快學會感謝這點多餘的資訊。(當然,懂得用const的程式設計師很少會留下的垃圾讓別人來清理的。)
2). 通過給優化器一些附加的資訊,使用關鍵字const也許能產生更緊湊的程式碼。
3). 合理地使用關鍵字const可以使編譯器很自然地保護那些不希望被改變的引數,防止其被無意的程式碼修改。簡而言之,這樣可以減少bug的出現
關鍵字const是什麼含意?
相關文章
- const關鍵字
- let關鍵字和const關鍵字
- c/c++ const關鍵字C++
- C++11 關鍵字 const 到底怎麼用?C++
- C++中的 const 關鍵字C++
- 為什麼async/await關鍵字是如此重要AI
- const {xxx} = this 是什麼?
- 深入聊一下const關鍵字
- iOS常用關鍵字static、const、extern、defineiOS
- C語言 關鍵字const的作用 const int* 和int *const 的區別C語言
- 影片直播系統原始碼,const宣告關鍵字是哪一個原始碼
- 物聯網學習教程—const關鍵字
- C語言中容易混淆的const關鍵字C語言
- TypeScript 中 as const 是什麼TypeScript
- 企業數字化轉型的關鍵節點是什麼?
- 施工企業數字化轉型成功的關鍵是什麼?
- Java 中 final 關鍵字有什麼用Java
- python3的關鍵字有什麼Python
- 為什麼我們需要volatile關鍵字?
- 為什麼資料和分析是數字化轉型的關鍵?
- 什麼是長尾關鍵詞?如何找到長尾關鍵詞?
- TRIZ專案成功的關鍵是什麼?
- 什麼是關鍵詞策略?網站關鍵詞佈局重要嗎?網站
- 業務流程管理的關鍵點是什麼?
- del 是關鍵字,一般是跟空格,為什麼也可以加小括號使用
- DM 關鍵字、遮蔽關鍵字
- 【面試普通人VS高手系列】volatile關鍵字有什麼用?它的實現原理是什麼?面試
- volatile關鍵字在Android中到底有什麼用?Android
- final關鍵字和static關鍵字
- Salesforce在CRM市場成功的關鍵是什麼Salesforce
- 嵌入式學習資源—說說使用static和const關鍵字
- Java併發程式設計——為什麼要用volatile關鍵字Java程式設計
- [譯] Javascript 中最長的關鍵字序列長什麼樣子?JavaScript
- const關鍵字在C與C++中修飾變數的區別C++變數
- 為什麼誠信是專案管理的關鍵部分?專案管理
- FMEA成功實施的關鍵是什麼,你清楚嗎?
- 工業大資料的關鍵技術是什麼大資料
- 超市無線網路的關鍵需求因素是什麼?