乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      數(shù)據(jù)類型、類型轉換、輸入輸出

       長沙7喜 2018-04-16




      Meet success like a gentleman and disaster like a man.


      接著上篇文章繼續(xù)介紹 C++ 基礎,本文主要介紹 標準數(shù)據(jù)類型、數(shù)據(jù)類型轉換、數(shù)據(jù)輸入與輸出


          C++ 基礎


      標準數(shù)據(jù)類型


      標準數(shù)據(jù)類型即 C++ 中的基本數(shù)據(jù)類型,系統(tǒng)定義的簡單數(shù)據(jù)類型,也稱為算術類型,存儲空間 bit)依機器而定, C++ 只規(guī)定了最小存儲空間,一共分為 4 種數(shù)據(jù)類型


      整型 

      整型數(shù)據(jù)從字面即可理解,為整數(shù)數(shù)據(jù)。整型值可以用十進制,十六進制或八進制符號指定,前面可以加上可選的符號( - 或者  +)。如果用八進制符號,數(shù)字前必須加上  0(零),用十六進制符號數(shù)字前必須加上 0x。在 C++ 語言中,整型類型標識符為 int,根據(jù)整型變量的取值范圍又可將整型變量定義為以下 8 種整型類型


      短整型

         short [int],占2字節(jié)(16位),-2^15 ~ 2^15-1

      無符號短整型

         unsigned short [int],占2字節(jié)(16位),0 ~ 2^16-1

      整型

         [long] int,占4字節(jié)(32位),-2^31 ~ 2^31-1

      無符號整型

         unsigned [int],占2字節(jié)(16位),0 ~ 2^16-1

      長整型

         long [int],占4字節(jié)(32位),-2^31 ~ 2^31-1

      無符號長整型

         unsigned long [int],占4字節(jié)(32位),0 ~ 2^32-1

      超長整型

         long long [int],占8字節(jié)(64位),-2^63 ~ 2^63-1

      無符號超長整型

         unsigned long long,占8字節(jié)(64位),0 ~ 2^64-1

      注:

      通常將8位的塊作為一個字節(jié),32位或4個字節(jié)作為一個字(word)


      實型

      實型又稱實數(shù)或浮點數(shù),可分為 3 種類型:單精度浮點數(shù)、雙精度浮點數(shù) 和 長雙精度浮點數(shù)。一般的表示方法有 小數(shù)形式 和 指數(shù)形式


      單精度實型

         float,占4字節(jié)(32位),有效位6~7位,-3.4E-38 ~ 3.4E+38

      雙精度實型

         double,占8字節(jié)(64位),有效位15~16位,-1.7E+308 ~ 1.7E+308

      長雙精度實型

         long double,占16字節(jié)(128位),有效位18~19位,-3.4E+4932 ~ 1.1E+4932


      字符型

      字符型即單個字符,用單引號括起來表示,如 'a'(數(shù)字也可以,如 '1'),字符型使用標識符 char 來表示

      注:

      字符只能是一個而且區(qū)分大小('A' 與 'a' 是不同的),只能用單引號括起來,不能用雙引號(用雙引號括起來的是字符串,字符串可以單個,也可多個)

      字符在運算的時候采用 ASCII 編碼(字符其實可以看成是單字節(jié)整型,取值范圍 0~255)


      轉義字符

      轉義字符是一種特殊的字符常量,以反斜線 \ 開頭,后跟一個或幾個字符。轉義字符具有特定的含義,不同于字符原有的意義,故稱轉義字符,轉義字符有三種用法:表示控制字符、表示特殊字符、表示所有字符


      常用的轉義字符

         '\n' 換行    '\t' 水平制表    '\b' 退格    '\r' 回車(不換行)    '\0' 空字符    '\'' 單引號    '\'' 雙引號    '\\' 一個反斜杠字符    '\ddd'  1~3位八進制數(shù)所代表的字符    '\xhh'  1~2位十六進制數(shù)所代表的字符


      布爾型

      布爾型也稱為邏輯型,用標識符 bool 來表示,其取值為true(邏輯真)和false(邏輯假),存儲字節(jié)數(shù)在不同編譯系統(tǒng)中可能有所不同,可以當作整數(shù)用(true一般為1,false為0),把其它類型的值轉換為布爾值時,非零值轉換為true,零值轉換為false

      注:

      C++中的布爾變量存儲的就是 0 和 非0,0 為 false,非0 為 true,在輸出的時候,只會輸出 0 和 1,如果要輸出 true 或 false 只能自己判斷布爾變量的真假,真則輸出 true,假則輸出 false,需要寫判斷語句,最簡單的方法就是利用自帶的 boolalpha 來輸出 true 或 false

         cout < boolalpha="">< 布爾變量=""><>


      數(shù)據(jù)類型轉換

      C++ 中不同的數(shù)據(jù)類型的對象進行運算時候,或者需要將結果轉換成期望的數(shù)據(jù)類型時,這時就要根據(jù)數(shù)據(jù)類型的轉換規(guī)則進行轉換

      混合運算時的類型轉換規(guī)則

      整型、實型、字符型 數(shù)據(jù)間可以進行混合運算,這種情況下,需要將 不一致 的數(shù)據(jù)類型轉換成 一致 的數(shù)據(jù)類型,然后進行運算。為了保證運算精度,系統(tǒng)在運算時的轉換規(guī)則是將 存儲長度較短 的運算對象轉換成 存儲長度較長 的類型,然后再進行處理,這種轉換是系統(tǒng) 自動 進行的,默認如下


         // 以下表示當運算對象為不同類型數(shù)據(jù)時,需轉換為同一數(shù)據(jù)類型然后進行運算    int -> unsigned int -> long int -> double    // 以下兩種在運算時,必定會先轉換為 int / double 然后與其他數(shù)據(jù)進行運算    char、short int -> intfloat -> double


      賦值時的類型轉換規(guī)則

      當進行賦值運算時,如果兩側的數(shù)據(jù)類型不同,需進行類型轉換,這種轉換是系統(tǒng) 自動 進行的,規(guī)則如下


      float、double 型賦值給 int 型

      直接截斷小數(shù)(不四舍五入,直接舍去)


      int、char 型賦值給 float、double 型

      補足有效位(后面添 0)


      char 型(單字節(jié))賦值給 int 型(4字節(jié))

      數(shù)值賦給 int 型的低 8 位(存入的是字符的 ASCII 碼),其他位補 0


      long int 型賦值給 int 型

      long int 型截斷低字節(jié)給 int 型


      int 型賦值給 long int 型

      賦給 long int 型的低 16 位,如果 int 型的最高位是 0,則 long int 的高 16 位全為 0;如果 int 型的最高位為 1,則 long int 型的高 16 位全為 1(稱為 符號擴展)


      unsigned int 型賦值給 int 型

      直接傳送數(shù)值


      非 unsigned int 型賦值給位數(shù)相同的 unsigned int 型

      直接傳送數(shù)值


      強制類型轉換

      強制類型轉換只是 臨時 轉換,強制轉換運算符組成的運算表達式的一般形式為:

         類型名(表達式)    a + int( b/3 );

      注:

      不管被轉換的是表達式或者單個變量都需要用括號括起來


      數(shù)據(jù)輸入輸出

      C++ 中沒有提供專門的輸入輸出語句,所有的輸入輸出都是調(diào)用標準庫函數(shù)中的輸入輸出函數(shù)來實現(xiàn)的,在使用時,在開頭添加如下語句

         #include    #include    using namespace std;


      字符輸入 -- getchar

      getchar 函數(shù)是一個無參函數(shù),接收從鍵盤輸入的 單個 字符數(shù)據(jù),通常把輸入的字符賦予一個字符變量,構成賦值語句

         char a;    a = getchar();

      注:

      getchar 函數(shù)只能接受單個字符,輸入的數(shù)字也按字符處理,如果輸入多余一個字符時,只接受第一個字符

      getchar 函數(shù)會等待用戶輸入,直到按回車鍵才結束,這個特性可用于暫停程序的運行,直接按回車結束

      如果在程序中有連續(xù)兩個以上的 getchar 函數(shù),應該一次性輸入所需要的字符,最后按回車鍵,否則會把回車作為一個字符傳給后面的 getchar 函數(shù)


      字符輸出 -- putchar

      putchar 函數(shù)是字符輸出函數(shù),向標準輸出設備輸出 單個 字符數(shù)據(jù)


         putchar(a);



      標準輸入 -- scanf

      scanf 函數(shù)用于格式化輸入任意數(shù)據(jù)列表


         scanf(格式空字符, 地址列表);    // 地址列表中給出個變量的地址,可以為變量的地址,也可以為字符串的首地址    // 格式控制符由 % 和格式符組成,作用是將要輸入的字符按指定的格式輸入,如 %d, %c 等    // d、i:用于輸入十進制整數(shù)    // u:用于無符號十進制形式輸入十進制整數(shù)
         // o:用于輸入八進制整數(shù)    // x:用于輸入十六進制整數(shù)    // c:用于輸入單個字符    // s:用于輸入字符串(非空格開始,空格結束,字符串變量以 '\0' 結尾)    // f:用于輸入實數(shù)(小數(shù)或指數(shù)均可)
         // e:與 f 相同    // l:用于長整型數(shù)(%ld、%lo、%lx)或 double 型實數(shù)(%lf、%le)    // h:用于短整型數(shù)(%hd、%ho、%hx)    // *:表示對應輸入量不賦給一個變量    scanf('%d*d%d', &a, &b);    // 輸入 1 2 3,輸出 a=1,b=3    // 域寬:指定輸入所占列寬(一個整數(shù))    scanf('%4d%4d', &a, &b);    // 輸入 1234567,輸出 a=1234, b=567

      如果 scanf 中有非格式符加入作為分隔符,則在輸入的時候也應添加指定分隔符

         // 注意 %d 之間的 逗號(作為了指定的分隔符)    scanf('%d, %d', &a, &b);    // 輸入 5,6,輸出 a=5,b=6

      注:

      上面說過了地址列表中可以是變量的地址,也可以是字符串的首地址& 就是取址符,如果輸入的是字符數(shù)組變量的話,此處變量名就代表了首地址,不需要取址符

         char a[20];    scanf('%s', a);


      標準輸出 -- printf

      printf 函數(shù)用于格式化輸出任意數(shù)據(jù)列表

          print(格式控制符, 輸出列表);    // 格式控制符由輸入格式說明和普通字符組成,必須用雙引號包裹起來    // 格式說明由 % 和格式字符組成,比如 %d,%c 等,普通字符即在輸出時原樣輸出的字符,一般在顯示時起提示作用    // 輸出列表則是需要輸出的數(shù)據(jù),各參數(shù)間用逗號分開,格式說明和輸出項需一一對應    // d、i:以帶符號的十進制形式輸出整數(shù),正數(shù)的(+)號省略不輸出    // u:以無符號十進制形式輸出整數(shù)    // x、X:以十六進制無符號形式輸出整數(shù)(不輸出前導符 0x)    // o:以八進制無符號形式輸出整數(shù)(不輸出前導符 0)    // c:輸出一個字符    // s:輸出字符串    // f:以小數(shù)形式輸出單、雙精度,隱含輸出 6 位小數(shù)    // e、E:以指數(shù)形式輸出單、雙精度,隱含輸出 6 位小數(shù)    // g、G:自動選用 %f、%e、%E 格式中輸出寬度最小的一種使用    // %d:輸出數(shù)字長度為變量數(shù)值的實際長度    // %md:輸出 m 位(不足補空位,大于 m 位時按實際長度輸出)    // %-md:輸出 m 位,左對齊輸出    // %ld:表示輸出長整型數(shù)據(jù)    // %mld:指定長整型輸出寬度 m 位,左邊補空格,否則按實際位數(shù)輸出    // %0md,%0mld:數(shù)字 0 表示位數(shù)不足 m 時補 0    // %f:按實際格式輸出,整數(shù)部分按實際位數(shù)輸出,小數(shù)部分輸出 6 位    // %m.nf:總位數(shù) m(含小數(shù)點),其中 n 位小數(shù)    // %-m.nf:總位數(shù) m(含小數(shù)點),其中 n 位小數(shù),左對齊    // %s:按實際寬度輸出一個字符串    // %ms:輸出 m 位(不足補空位,大于 m 位時按實際長度輸出)    // %-ms:左對齊,不足右補空格    // %m.ns:總位數(shù) m,其中字符數(shù)最多 n 個,左補空格    // %-m.ns:同上,右補空格


      流輸入 -- cin

      cin 和 流讀取運算符 >> 一起使用,接收輸入的數(shù)據(jù),多個 >> 連續(xù)使用可以對多個變量輸入數(shù)據(jù),從外部輸入的數(shù)據(jù)的個數(shù)、類型必須和變量一致,從鍵盤讀取數(shù)據(jù)時,各數(shù)據(jù)之間要有分隔符,分隔符可以是一個或多個空格、回車等

         cin >> a >> b;    // 鍵盤輸入    2 3


      流輸出 -- cout

      cout 和 流插入運算符  一起使用,向標準輸出設備輸出數(shù)據(jù),多個  連續(xù)使用可以輸出多個數(shù)據(jù)

         cout < a=""><>

      注:

      輸出字符串常量時,需用雙引號將字符串常量包裹起來,以區(qū)別變量名

         cout < 'aa';=""  =""  cout=""><>

      cout 不會在輸出內(nèi)容的末尾加 換行符,所以在需要換行的地方,必須插入換行符 \n 或者 endl

         cout < 'aa\n';=""  =""  cout="">< aa=""><>


      數(shù)據(jù)輸入輸出方式比較

      Dev C++ 在使用 cin、cout 時必須調(diào)用 iostream 庫,使用其他輸入輸出時,必須調(diào)用 cstdio 庫,在時效上和格式化方面,scanf、printf 都優(yōu)于 cin 和 cout,但是就簡便而言,后者更優(yōu)


      習題

      結合上一篇文章一共學習了 常量變量、運算符、數(shù)據(jù)類型類型轉換、輸入輸出,運用這些知識可以嘗試做一些習題。下面推薦一個在線OJ,其中 1.1、1.2、1.3 共 40 題可以練習


         http://noi./


      注:

      運算中常用的庫函數(shù)(習題中可能出現(xiàn))

      絕對值函數(shù)

      abs(x):求一個數(shù) x 的絕對值

      自然數(shù)指數(shù)函數(shù)

      exp(x):求實數(shù) x 的自然指數(shù) e^x

      向下取整

      floor(x):求不大于實數(shù) x 的最大整數(shù)

      向上取整

      ceil(x):求不小于實數(shù) x 的最小整數(shù)

      自然對數(shù)函數(shù)

      log(x):求實數(shù) x 的自然數(shù)對數(shù)

      指數(shù)函數(shù)

      pow(x, y):計算 x^y,結果為雙精度實數(shù)

      隨機函數(shù)

      rand():產(chǎn)生 0 到 RAND-MAX 之間的隨機整數(shù)

      平方根函數(shù)

      sqrt(x):求實數(shù) x 的平方根




        本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
        轉藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多