青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Impossible is nothing  
  愛過知情重醉過知酒濃   花開花謝終是空   緣份不停留像春風來又走   女人如花花似夢
公告
日歷
<2025年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456
統計
  • 隨筆 - 8
  • 文章 - 91
  • 評論 - 16
  • 引用 - 0

導航

常用鏈接

留言簿(4)

隨筆分類(4)

隨筆檔案(8)

文章分類(77)

文章檔案(91)

相冊

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

 
有的Code Committee專家會建議你使用const:
1 要大膽的使用const,這將給你帶來無盡的益處,但前提是你必須搞清楚原委;
2 要避免最一般的賦值操作錯誤,如將const變量賦值;
3 在參數中使用const應該使用引用或指針,而不是一般的對象實例,原因同上;
4 const在成員函數中的三種用法(參數、返回值、函數)要很好的使用;
5 不要輕易的將函數的返回值類型定為const;
6 除了重載操作符外一般不要將返回值類型定為對某個對象的const引用;
 
 
  const基本解釋
 
  const是一個C語言的關鍵字,它限定一個變量不允許被改變。使用const在一定程度上可以提高程序的健壯性,另外,在觀看別人代碼的時候,清晰理解const所起的作用,對理解對方的程序也有一些幫助。
 
  雖然這聽起來很簡單,但實際上,const的使用也是c語言中一個比較微妙的地方,微妙在何處呢?請看下面幾個問題。
 
  問題:const變量 & 常
 
  為什么我象下面的例子一樣用一個const變量來初始化數組,ANSI C的編譯器會報告一個錯誤呢?
 
  const int n = 5;
 
  int a[n];
 
  答案與分析:
 
   1)、這個問題討論的是“常量”與“只讀變量”的區別。常量肯定是只讀的,例如5, “abc”,等,肯定是只讀的,因為程序中根本沒有地方存放它的值,當然也就不能夠去修改它。而“只讀變量”則是在內存中開辟一個地方來存放它的值,只不 過這個值由編譯器限定不允許被修改。C語言關鍵字const就是用來限定一個變量不允許被改變的修飾符(Qualifier)。上述代碼中變量n被修飾為 只讀變量,可惜再怎么修飾也不是常量。而ANSI C規定數組定義時維度必須是“常量”,“只讀變量”也是不可以的。
 
   2)、注意:在ANSI C中,這種寫法是錯誤的,因為數組的大小應該是個常量,而const int n,n只是一個變量(常量 != 不可變的變量,但在標準C++中,這樣定義的是一個常量,這種寫法是對的),實際上,根據編譯過程及內存分配來看,這種用法本來就應該是合理的,只是 ANSI C對數組的規定限制了它。
 
  3)、那么,在ANSI C 語言中用什么來定義常量呢?答案是enum類型和#define宏,這兩個都可以用來定義常量。
 
  問題:const變量 & const 限定的內容
 
  下面的代碼編譯器會報一個錯誤,請問,哪一個語句是錯誤的呢?
 
  typedef char * pStr;
 
  char string[4] = "abc";
 
  const char *p1 = string;
 
  const pStr p2 = string;
 
  p1++;
 
  p2++;
 
  答案與分析:
 
  問題出在p2++上。
 
  1)、const使用的基本形式: const char m;
 
  限定m不可變。
 
  2)、替換1式中的m, const char *pm;
 
  限定*pm不可變,當然pm是可變的,因此問題中p1++是對的。
 
  3)、替換1式char, const newType m;
 
  限定m不可變,問題中的charptr就是一種新類型,因此問題中p2不可變,p2++是錯誤的。
 
  問題:const變量 & 字符串常量
 
  請問下面的代碼有什么問題?
 
  char *p = "i'm hungry!";
 
  p[0]= 'I';
 
  答案與分析:
 
  上面的代碼可能會造成內存的非法寫操作。分析如下, “i'm hungry”實質上是字符串常量,而常量往往被編譯器放在只讀的內存區,不可寫。p初始指向這個只讀的內存區,而p[0] = 'I'則企圖去寫這個地方,編譯器當然不會答應。
 
  問題:const變量 & 字符串常量2
 
  請問char a[3] = "abc" 合法嗎?使用它有什么隱患?
 
  答案與分析:
 
   在標準C中這是合法的,但是它的生存環境非常狹?。凰x一個大小為3的數組,初始化為“abc”,,注意,它沒有通常的字符串終止符'\0',因此這 個數組只是看起來像C語言中的字符串,實質上卻不是,因此所有對字符串進行處理的函數,比如strcpy、printf等,都不能夠被使用在這個假字符串 上。
 
  問題:const & 指針
 
  類型聲明中const用來修飾一個常量,有如下兩種寫法,那么,請問,下面分別用const限定不可變的內容是什么?
 
  1)、const在前面
 
  const int nValue; //nValue是const
 
  const char *pContent; //*pContent是const, pContent可變
 
  const (char *) pContent;//pContent是const,*pContent可變
 
  char* const pContent; //pContent是const,*pContent可變
 
  const char* const pContent; //pContent和*pContent都是const
 
  2)、const在后面,與上面的聲明對等
 
  int const nValue; // nValue是const
 
  char const * pContent;// *pContent是const, pContent可變
 
  (char *) const pContent;//pContent是const,*pContent可變
 
  char* const pContent;// pContent是const,*pContent可變
 
  char const* const pContent;// pContent和*pContent都是const
 
  答案與分析:
 
  const和指針一起使用是C語言中一個很常見的困惑之處,在實際開發中,特別是在看別人代碼的時候,常常會因為這樣而不好判斷作者的意圖,下面講一下判斷原則沿著*號劃一條線,const和誰在一邊,那么誰就是const,即const限定的元素就是它。你可以根據這個規則來看上面聲明的實際意義,相信定會一目了然。
 
  另外,需要注意:對于const (char *) ; 因為char *是一個整體,相當于一個類型(如 char),因此,這里限定指針是const。
posted on 2006-02-26 11:47 笑笑生 閱讀(128) 評論(0)  編輯 收藏 引用

只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


 
Copyright © 笑笑生 Powered by: 博客園 模板提供:滬江博客
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            最新中文字幕亚洲| 亚洲欧美在线免费| 久久精品综合| 亚洲最黄网站| 免费欧美电影| 国产精品美女www爽爽爽视频| 国产精品试看| 一区二区三区欧美激情| 久久久久久夜| 99国产精品视频免费观看一公开| 久久久久久久久久久一区| 国产精品国产成人国产三级| 亚洲精选在线| 欧美激情精品久久久| 欧美中文在线观看国产| 欧美日韩在线另类| 一区二区三区www| 91久久久久久久久| 久久亚洲一区二区| 激情久久影院| 久久精品三级| 久久国产夜色精品鲁鲁99| 国产精品羞羞答答| 欧美一区二区三区视频免费播放| 亚洲美女视频在线观看| 欧美日本高清视频| 中文久久精品| 在线天堂一区av电影| 欧美系列一区| 西瓜成人精品人成网站| 亚洲欧美影音先锋| 国产日韩欧美成人| 久久欧美中文字幕| 久久综合久久综合久久| 亚洲国产一二三| 亚洲人成人77777线观看| 欧美日韩另类在线| 亚洲免费视频网站| 亚洲第一精品夜夜躁人人爽| 亚洲女性裸体视频| 国产日韩欧美二区| 蜜桃伊人久久| 欧美精品成人一区二区在线观看| 宅男精品视频| 亚洲中字黄色| 亚洲高清三级视频| 亚洲高清久久网| 国产精品美女诱惑| 久久久精品tv| 欧美日韩免费网站| 久久xxxx| 欧美日韩18| 久久久精品视频成人| 欧美大片专区| 久久精品一本| 欧美日韩不卡视频| 久久国产精品99国产精| 欧美国产欧美综合| 欧美一级理论片| 欧美成人高清视频| 亚洲欧美日韩直播| 欧美高清视频免费观看| 欧美一区二区视频观看视频| 欧美福利一区二区三区| 久久精品视频免费播放| 欧美激情精品久久久久久变态| 欧美一区二区三区日韩视频| 欧美激情久久久久| 久久婷婷国产麻豆91天堂| 国产精品白丝jk黑袜喷水| 欧美国产精品一区| 国产有码一区二区| 一本综合久久| 亚洲精品一区二区三区av| 亚洲精品中文字幕在线观看| 国产亚洲成av人在线观看导航 | 国产一区深夜福利| 一区二区三区欧美激情| 亚洲老板91色精品久久| 另类天堂av| 麻豆91精品91久久久的内涵| 国产欧美69| 亚洲在线国产日韩欧美| 亚洲男人影院| 欧美日韩国产小视频| 亚洲二区视频| 亚洲精品三级| 女同性一区二区三区人了人一 | 在线一区二区日韩| 欧美理论大片| 99riav国产精品| 亚洲午夜久久久久久久久电影网| 欧美伦理在线观看| 99re这里只有精品6| 一区二区日本视频| 国产精品久久国产三级国电话系列| 亚洲人成精品久久久久| 中国av一区| 国产精品日韩欧美大师| 亚洲欧美网站| 老牛嫩草一区二区三区日本| 国内精品视频久久| 嫩模写真一区二区三区三州| 亚洲黄色在线看| 亚洲欧美日韩区| 国产九九视频一区二区三区| 欧美中文字幕精品| 亚洲第一页自拍| 亚洲图中文字幕| 国产综合久久久久久鬼色| 午夜欧美精品久久久久久久| 亚洲自拍电影| 国产又爽又黄的激情精品视频| 久久精品九九| 亚洲精品美女久久7777777| 亚洲欧美日韩一区二区三区在线| 韩国av一区二区| 欧美激情亚洲另类| 亚洲影院色无极综合| 欧美xx视频| 小黄鸭精品aⅴ导航网站入口| 国产一区二区三区精品久久久| 欧美69视频| 欧美一区在线视频| 亚洲蜜桃精久久久久久久| 久久精品国产亚洲精品| 日韩午夜黄色| 红桃视频国产一区| 国产精品电影网站| 欧美成人精品h版在线观看| 午夜精品成人在线| 亚洲三级视频在线观看| 噜噜噜噜噜久久久久久91| 亚洲综合日韩中文字幕v在线| 亚洲国产精品免费| 国产一区久久| 国产精品欧美日韩一区二区| 欧美激情一区二区| 久久成人免费电影| 亚洲在线视频免费观看| 亚洲精品日产精品乱码不卡| 欧美承认网站| 久久亚洲精品一区二区| 久久国产精彩视频| 亚洲欧美日韩另类精品一区二区三区 | 亚洲国产高清自拍| 免费av成人在线| 久久综合色一综合色88| 久久色中文字幕| 亚洲影院在线| 在线播放不卡| 亚洲高清网站| 黄色亚洲在线| 一区在线视频| 尤物精品国产第一福利三区 | 欧美69视频| 欧美理论视频| 欧美日韩麻豆| 欧美天堂亚洲电影院在线观看| 欧美日韩精品不卡| 欧美人妖另类| 欧美色欧美亚洲另类二区| 欧美特黄一区| 国产欧美一区二区三区在线看蜜臀| 国产精品久久久久久久久搜平片| 国产精品久久久久久亚洲调教| 国产精品欧美精品| 国产一区二区三区免费观看| 一色屋精品视频在线看| 亚洲高清色综合| 亚洲手机成人高清视频| 欧美一区二区三区在线| 免费亚洲一区二区| 亚洲美女视频在线免费观看| 亚洲视频在线一区观看| 久久精品官网| 欧美日韩国产系列| 国产一区二区三区久久悠悠色av| 亚洲国产女人aaa毛片在线| 一本色道久久88精品综合| 午夜精彩视频在线观看不卡| 久久影视精品| 9久re热视频在线精品| 欧美一区二区三区在线播放| 免费亚洲视频| 国产日韩一区二区| 日韩亚洲精品在线| 久久先锋影音av| 宅男精品导航| 欧美成人精品三级在线观看| 国产精品久久久久久久午夜 | 国产亚洲精品综合一区91| 伊人蜜桃色噜噜激情综合| 影音先锋另类| 午夜在线成人av| 亚洲国产一区视频| 久久精品中文字幕免费mv| 国产精品成人久久久久| 亚洲片区在线| 久久亚洲免费|