C Const
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C Const相关的知识,希望对你有一定的参考价值。
鏍囩锛?a href='http://www.mamicode.com/so/1/nbsp' title='nbsp'>nbsp
鍚箟 鍐呭 缂栫爜 姣旇緝 娉ㄦ剰 绫诲瀷 oat strongC90澧炲姞浜嗕袱涓睘鎬э細涓嶅彉鎬у拰鏄撳彉鎬?
閫氳繃鍏抽敭瀛梒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的主要内容,如果未能解决你的问题,请参考以下文章
为啥在片段中从 char* 转换为 std::string 比转换为 const char* 更可取?