C Const

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C Const相关的知识,希望对你有一定的参考价值。

鏍囩锛?a href='http://www.mamicode.com/so/1/nbsp' title='nbsp'>nbsp   鍚箟   鍐呭   缂栫爜   姣旇緝   娉ㄦ剰   绫诲瀷   oat   strong   

C90澧炲姞浜嗕袱涓睘鎬э細涓嶅彉鎬у拰鏄撳彉鎬?

閫氳繃鍏抽敭瀛梒onst 鍜?volatile 澹版槑鐨勶紝 杩欐牱灏卞垱寤轰簡鍙楅檺绫诲瀷锛坬ualified type).

C99 澧炲姞浜嗙涓変釜闄愬畾璇峳estrict, 鐢ㄤ互鏂逛究缂栬瘧鍣ㄤ紭鍖栥€?/p>

绫诲瀷闄愬畾璇?const 

濡傛灉鍙橀噺澹版槑涓甫鏈夊叧閿瓧const锛屽垯涓嶈兘閫氳繃璧嬪€笺€佸閲忔垨鍑忛噺鏉ヤ慨鏀硅鍙橀噺鐨勫€笺€?/p>

const int nochange; /* constant */
nochange = 12 /* false */

鍙互鍒濆鍖栦竴涓猚onst 鍙橀噺锛?鍒濆鍖栦箣鍚庯紝涓嶅彲浠ュ啀鏀瑰彉瀹冦€?/p>

const int nochange = 12  // true
const int days1[3] = {31,30,31}; // true

鍦ㄦ寚閽堝拰鍙傞噺澹版槑涓娇鐢╟onst

鐗瑰埆娉ㄦ剰鍖哄垎锛?鎸囬拡鏈韩鏄痗onst     涓?nbsp;       鎸囬拡鎸囧悜鐨勫€兼槸const

const 绱ф尐鐫€鐨勬槸浠€涔堬紝浠€涔堝氨鏄笉鍙樼殑

const int days1[3] = {31,30,31}; // true  鐩稿綋浜?const int *days1 ;  const鍦?* 宸﹁竟锛?浣垮緱鏁版嵁鎴愪负甯搁噺

const float *pf  锛?// const 绱ф尐鐫€ float ,璇存槑 float甯搁噺鏄笉鍙樼殑

float *const pt ;  // const绱ф尐鐫€ 鎸囬拡pt锛岃鏄庢槸涓€涓父閲忔寚閽?/span>

float const *pt; // const绱ф尐鐫€ *pt, 鐩稿綋浜庤В寮曠敤锛屾槸float 甯搁噺锛屼笉鏄寚閽堬紝娉ㄦ剰鍖哄垎

鍚庨潰鏈夋洿濂界殑鐞嗚В鏂规硶锛侊紒锛?/span>

1. 鎸囬拡鎸囧悜鐨勫€兼槸const

const float *pf ;  // pf 鎸囧悜涓€涓父閲?/p>

鐗瑰埆娉ㄦ剰锛?const鏀剧疆鍦ㄤ笉鍚岀殑浣嶇疆锛屾湁涓嶅悓鐨勫惈涔夛紝娉ㄦ剰鍖哄垎锛侊紒锛?/p>

float const *pfc; // 绛夊悓浜?const float *pfc

鎶奵onst鏀惧湪 绫诲瀷鍚?鐨勫悗杈瑰拰 * 鐨勫墠杈癸紝鎰忓懗鐫€鎸囬拡涓嶈兘澶熺敤鏉ユ敼鍙樺畠鎵€鎸囧悜鐨勫€笺€?/p>

鎬讳箣锛氫笅闈㈢悊瑙h捣鏉ユ瘮杈冨鏄?/span>

涓€涓綅浜?span style="background-color: #ffff00;"> *宸﹁竟 浠绘剰浣嶇疆鐨?const 浣垮緱 鏁版嵁鎴愪负甯搁噺 

鑰?涓€涓綅浜?* 鍙宠竟 鐨刢onst浣垮緱  鎸囬拡鑷韩鎴愪负甯搁噺 銆?/p>

 

浣嗘槸pf鏈韩鐨勫€兼槸鍙互鏀瑰彉鐨勶紙鏈韩鏄釜鍦板潃锛夛紝瀹冨彲浠ユ寚鍚戝彟涓€涓猚onst鍊?/span>銆?/p>

eg:

const float *pf_new;

pf  = pf_new;

2. 鎸囬拡鏈韩鏄痗onst (鎸囬拡鏈韩鐨勫€间笉鍙彉)

eg:

float * const pt;  // pt 鏄竴涓父閲忔寚閽?/p>

绛夊悓浜庝笅闈㈢殑鍐欐硶

float const *pt // pt 鏄竴涓父閲忔寚閽?/p>

蹇呴』鎬绘槸鎸囧悜鍚屼竴涓湴鍧€锛屼絾鎵€鎸囧悜鐨勫€煎彲浠ユ敼鍙樸€?/span>

3.  鍦板潃鏄父閲忥紝鍦板潃鎸囧悜鐨勫唴瀹逛篃鏄父閲?/span>

const float * const ptr;

鎰忓懗鐫€ptr蹇呴』鎬绘槸鎸囧悜鍚屼竴涓綅缃紙鍦板潃锛夛紝骞朵笖瀹冩墍鎸囦綅缃瓨鍌ㄧ殑鍊间篃涓嶈兘鏀瑰彉銆?/span>

 

4.  甯歌鐢ㄦ硶

甯歌鐢ㄦ硶鏄0鏄庝綔涓哄嚱鏁板舰寮忓弬閲忕殑鎸囬拡銆?/span>

eg:

涓€涓悕涓篸isplay()鐨勫嚱鏁版樉绀轰竴涓暟缁勭殑鍐呭銆?涓轰簡浣跨敤瀹冿紝鍙互鎶婃暟缁勫悕浣滀负鍙傛暟浼犻€侊紝浣嗘暟缁勫悕鏄竴涓湴鍧€锛?/span>

杩欐牱鍋氬皢鍏佽鍑芥暟鏀瑰彉璋冪敤鍑芥暟涓殑鏁版嵁銆備笅闈㈢殑鍘熷瀷闃叉浜嗚繖鏍风殑鎯呭喌鍙戠敓銆?/span>

void display(const int array[], int limit);

鍦ㄥ嚱鏁板師鍨嬪拰鍑芥暟澶撮儴锛屽弬閲忓0鏄?const int array[]  涓?const int *array, 璇ュ0鏄庤〃鏄巃rray鎸囧悜鐨勬暟鎹槸涓嶅彲鍙樼殑銆?/span>

5. 瀵瑰叏灞€鏁版嵁浣跨敤const

6. const 鎸囬拡鍙橀噺闂寸殑璧嬪€煎叧绯?/span>

const鎸囬拡 蹇呴』 璧嬪€肩粰 const 鎸囬拡

浣嗘槸锛岄潪const鍨嬫寚閽?鍙互 璧嬪€肩粰cons鎸囬拡

7 QAC 0431

8 缂栫爜瀹炶返

 

 

 

以上是关于C Const的主要内容,如果未能解决你的问题,请参考以下文章

vue2.0 代码功能片段

为啥在片段中从 char* 转换为 std::string 比转换为 const char* 更可取?

20个简洁的 JS 代码片段

C语言 const常量讲解

ECMAScript 2015:for 循环中的 const

JavaScript ES6 的let和const