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

franksunny的個人技術空間
獲得人生中的成功需要的專注與堅持不懈多過天才與機會。 ——C.W. Wendte

 

< 筆記一、數據類型 >

現在業界普遍認可以下等式

程序 = 數據結構   + 算法 + 文檔

這第一篇筆記就只對以上提到的數據結構結合本人的理解展開做些總結。

 

類型

程序的輸入輸出的實體就是數據信息,而對這些數據信息給以歸類和組織,我們就稱為數據結構。因此數據結構就是對數據的組織形式,也可以說是對內存的編碼規則。由于基于底層的數據都是二進制的 0 1 序列,所以人們通常將 8 個連續的 0 1 序列看作一個獨立的結構——字節( Byte ),字節中的每一個二進制序列就是一個位( bit )。但是這種組織形式太過籠統,為此 C 語言提供了四種基本類型(整型、浮點型、字符型、枚舉類型)、三種構造類型(數組、結構體、聯合體)、指針類型和空類型。 C++ 語言在以上 9 種類型基礎上又增加了一種基本類型—— bool 型和一種構造類型——類類型( class )。

 

編碼規則

雖然 C 數據類型有 9 C++ 11 種,但是按編碼規則所有數據類型卻只采用了兩種編碼方式,即整型和浮點型。以下對各類型結合編碼規則稍作展開:

整型數據根據有無符號位可以區分為 signed unsigned 兩種類型,對于 signed 的編碼方式,最高位用做符號位用,其它位用作數據位,而 unsigned 類型所有位全都用來做數據位。數據位采用補碼形式編碼,正數的補碼以原碼給出,而負數的補碼為原碼的反碼加 1 給出,因此 11111111 表示無符號整型時為 255 ,表示有符號整型時為 -1 ANSIC 整型類型給出了三種不同字節長度類型符為 short int long ,但 ANSIC 并沒有規定每一種類型的具體長度,可以視不同的編譯器而變化,但要求 short 不長于 int 不長于 long 。通常 32 位用 VC 編譯器編譯時 short 2 字節、 int 4 字節、 long 也為 4 字節。

浮點型數據編碼規則不區分有無符號,一致都采用 1 符號位 n 數據位 m 指數位來表示,其中 n 又被稱為浮點類型的有效位數, n 越大則精度越高,同時 m 越大表示的數據越大。 ANSIC 給出了不同字節長度的浮點數類型 float double ,同樣沒有規定每一種類型的具體長度,但要求 float 不長于 double 32 VC 編譯下 float 4 字節, double 8 字節長度。

字符型,即按 ASCII 碼表排序,以單個字節長度采用整型編碼方式編碼,也要區分 signed unsigned 兩種類型。例 char A = 255 unsiged char B = 255, 都是表示同一個字符,但是 A 實際值為 -1 B 的值才是 255

枚舉類型,采用 enum 類型符,可以說是一種自定義類型,為了說明 enum 的有用性,我以代碼方式總結:

    const int sun = 0;

    const int mon = 1;

    const int tue     = 2;

    const int wen     = 3;

    const int thu     = 4;

    const int fri     = 5;

    const int sat     = 6;

    int today = sun;

以上代碼從程序可讀性來說顯然沒有如下采用 enum 方式來的好,至于從代碼執行效果來說是否有優越性我還不是很清楚,有達人知道還望指點。

typedef enum WEEKDAY

    {

       sun,

       mon,

       tue,

       tue,

       wen,

       thu,

       fri,

       sat

    }weekDay;

    weekDay today = sun;

枚舉類型實際在內存中是以 int 類型值編碼的,當第一個枚舉類型常量沒有賦初值時,默認為 0 開始,以后依次遞增 1

以上對四種基本類型進行了展開,而三種構造類型數組、結構體、聯合體則是有四種基本類型根據需求自由組合而成。

數組類型,其實就是根據需要用戶自定義以同一種類型聲明一個數組長度的一組變量,數組類型本身沒有類型符。在內存中以同一編碼規則連續編碼一塊數組長度的空間。

結構類型,則是根據需求用戶采用不同種類型的數據量構成的一個新的類型,它以 struct 類型符定義,在內存中以事先安排的順序和基本類型編碼規則編碼。

聯合體類型,由于結構類型中的每一中基本類型都是分配一塊內存,但是有一種需求是一塊內存可以以不同的類型來拆分,這種需求在通信中相當常見,為此引進了聯合體類型。見下面列子

typedef union CODON

   {

       DWORD m_dwCodon;

       char  m_chCodon[4];

   }Codon;

以上定義了常用的四個長度的碼字,每一個碼字都是一個字符,但是為了程序中比較運算方便我們可以用一個 DWORD (四個字節的整數類型)值來進行整數比較。

 

指針類型,指針類型本身是一個 32 位即 4 個字節來描述的正整數數據,表示的是變量的內存地址,所以不管指針是定義成何種類型用 sizeof 取得的始終是 4 字節長度,但是指針做增一運算時就跟具體的數據類型相關了。如 char *p p++ 就是加 1 ,而 int *p p++ 就是加 4 了。

空類型,即 void 類型,在函數返回值和形參中用的比較多,并且與指針類型常結合在一起用,該類型弱化了編碼規則,但是不能用這種類型來聲明和定義變量。

C++ 新增的兩種類型, bool 型其實也是一個字節類型的,按照整型數據來編碼,其值 true 1 false 0 。至于 class 類型,在內存中編碼規則等同與 struct 。以后將做更多的討論。

 

至此,將 C C++ 內的數據類型做了一個小小闡述,下一節將小結變量。

 

posted on 2006-11-10 23:43 frank.sunny 閱讀(803) 評論(0)  編輯 收藏 引用 所屬分類: C/C++學習和實踐

常用鏈接

留言簿(13)

隨筆分類

個人其它博客

基礎知識鏈接

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            国产欧美日韩一区二区三区在线观看| 午夜日韩在线| 欧美高清视频一区二区三区在线观看| 西西裸体人体做爰大胆久久久| 欧美超级免费视 在线| 久久在线视频在线| 免费在线亚洲| 蜜桃视频一区| 亚洲第一精品在线| 麻豆精品视频| 亚洲第一精品电影| 亚洲欧洲精品一区| 亚洲美女福利视频网站| 亚洲精选在线观看| 亚洲香蕉网站| 久久国产精品久久国产精品| 久久蜜桃香蕉精品一区二区三区| 久久久蜜臀国产一区二区| 欧美va亚洲va香蕉在线| 亚洲成人在线视频播放| 一道本一区二区| 性视频1819p久久| 久久人人爽人人爽| 欧美日韩一区在线视频| 亚洲国产一二三| 国产精品成人观看视频国产奇米| 欧美大片第1页| 猫咪成人在线观看| 久久国产精品色婷婷| 久久成人一区| 欧美91福利在线观看| 国产美女精品视频免费观看| 麻豆精品传媒视频| 亚洲一区二区三区在线视频| 亚洲欧美日韩国产综合| 久久精品五月| 亚洲激情小视频| 亚洲一区一卡| 免费观看成人网| 国产精品露脸自拍| 亚洲激情欧美| 久久香蕉国产线看观看av| 亚洲三级观看| 久久精品国产亚洲一区二区三区| 欧美成人自拍| 国产一区二区在线免费观看| 一本色道久久99精品综合| 久久久久在线| 亚洲午夜小视频| 欧美精品粉嫩高潮一区二区 | 亚洲国产欧美精品| 欧美在线三区| 一本到12不卡视频在线dvd| 91久久精品一区二区别| 亚洲欧美一区二区精品久久久| 免费在线成人av| 性欧美18~19sex高清播放| 欧美午夜视频网站| 国产视频精品网| 欧美一区二区视频在线观看| 91久久综合| 欧美成人四级电影| 在线欧美电影| 麻豆精品网站| 久久九九免费| 伊甸园精品99久久久久久| 欧美伊人久久久久久久久影院| 亚洲精品午夜| 欧美视频在线观看| 艳妇臀荡乳欲伦亚洲一区| 亚洲国产成人精品久久| 久久久天天操| 91久久久国产精品| 亚洲性感激情| 99re热这里只有精品视频 | 欧美国产日韩一区二区在线观看| 久久se精品一区二区| 久久精品亚洲| 亚洲精品久久久一区二区三区| 久久久久久夜| 免费欧美高清视频| 亚洲人成亚洲人成在线观看| 一区二区av| 亚洲国产日韩一级| 午夜精品一区二区三区在线| 亚洲美女av在线播放| 久久久久久久久岛国免费| 香蕉久久精品日日躁夜夜躁| 欧美激情亚洲综合一区| 欧美成人黑人xx视频免费观看| 国产精品羞羞答答xxdd| 一区二区免费在线视频| 国产欧美日韩精品丝袜高跟鞋| 亚洲精品美女免费| 亚洲精品国久久99热| 久久一区精品| 老司机一区二区三区| 国产女同一区二区| 久久精品水蜜桃av综合天堂| 国产日本欧美视频| 亚洲国产精品va| 欧美一级淫片aaaaaaa视频| 亚洲欧美卡通另类91av| 欧美人在线观看| 99国产成+人+综合+亚洲欧美| 亚洲精品日韩欧美| 欧美精品激情blacked18| 亚洲精品在线观看免费| 亚洲一区二区三区免费视频| 国产精品久久二区| 亚洲欧美日韩在线综合| 久久久久久久激情视频| 精品不卡一区| 欧美电影免费观看| 99re在线精品| 欧美在线看片| 尤妮丝一区二区裸体视频| 久热精品在线| 亚洲人午夜精品免费| 亚洲自拍高清| 在线观看日韩av电影| 欧美久久精品午夜青青大伊人| 夜夜嗨av一区二区三区| 欧美在线综合视频| 国产视频一区在线| 99精品视频免费观看视频| 亚洲精品美女在线观看播放| 一区二区三区www| 久久婷婷国产综合精品青草| 欧美精品成人在线| 国产女人aaa级久久久级| 亚洲精品一区在线观看| 午夜精品国产精品大乳美女| 欧美成人在线免费观看| 亚洲精品视频啊美女在线直播| 一区二区三区高清视频在线观看| 国产精品99久久久久久人 | 欧美日韩国产系列| 美女图片一区二区| 在线精品视频一区二区| 国产精品亚发布| 欧美日韩性生活视频| 亚洲欧美国产高清| 黄色另类av| 亚洲一卡久久| 亚洲激情国产精品| 国产午夜精品一区二区三区视频| 午夜精品久久久久久久久| 亚洲欧美日韩国产中文| 久久精品1区| 亚洲人精品午夜| 欧美日本亚洲| 久久另类ts人妖一区二区| 欧美国产欧美综合| 亚洲欧美国产77777| 国内成+人亚洲+欧美+综合在线| 欧美人在线观看| 欧美在线播放一区| 日韩五码在线| 久久一日本道色综合久久| 国产精品久久久久77777| 亚洲日韩第九十九页| 91久久久在线| 欧美高清视频www夜色资源网| 亚洲毛片av| 狂野欧美激情性xxxx欧美| 夜色激情一区二区| 黄色亚洲在线| 国产精品亚洲一区| 裸体丰满少妇做受久久99精品| 一区二区三区高清在线| 亚洲第一偷拍| 国产精品久久久久77777| 欧美日韩的一区二区| 久久精品国产精品| 小黄鸭精品aⅴ导航网站入口| 国产精品欧美精品| 国产精品入口日韩视频大尺度| 久久久久久国产精品一区| 欧美在线免费看| 亚洲高清视频一区二区| 亚洲精品乱码久久久久久蜜桃91| 亚洲综合视频网| 亚洲国产精品一区二区尤物区 | 亚洲乱码精品一二三四区日韩在线 | 麻豆国产精品777777在线| 亚洲国产婷婷| 亚洲黄色成人网| 欧美图区在线视频| 欧美视频网站| 欧美成人免费视频| 欧美成人精品福利| 欧美高清hd18日本| 久热精品视频在线观看| 麻豆精品在线播放| 久久久久88色偷偷免费| 久久久久一区二区三区四区| 欧美永久精品| 亚洲人人精品| 久久一区二区三区超碰国产精品|