小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

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

 長沙7喜 2018-04-16




Meet success like a gentleman and disaster like a man.


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


    C++ 基礎(chǔ)


標(biāo)準(zhǔn)數(shù)據(jù)類型


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


整型 

整型數(shù)據(jù)從字面即可理解,為整數(shù)數(shù)據(jù)。整型值可以用十進(jìn)制,十六進(jìn)制或八進(jìn)制符號指定,前面可以加上可選的符號( - 或者  +)。如果用八進(jìn)制符號,數(shù)字前必須加上  0(零),用十六進(jìn)制符號數(shù)字前必須加上 0x在 C++ 語言中,整型類型標(biāo)識符為 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í)型又稱實(shí)數(shù)或浮點(diǎn)數(shù),可分為 3 種類型:單精度浮點(diǎn)數(shù)、雙精度浮點(diǎn)數(shù) 和 長雙精度浮點(diǎn)數(shù)。一般的表示方法有 小數(shù)形式 和 指數(shù)形式


單精度實(shí)型

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

雙精度實(shí)型

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

長雙精度實(shí)型

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


字符型

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

注:

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

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


轉(zhuǎn)義字符

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


常用的轉(zhuǎn)義字符

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


布爾型

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

注:

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

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


數(shù)據(jù)類型轉(zhuǎn)換

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

混合運(yùn)算時的類型轉(zhuǎn)換規(guī)則

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


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


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

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


float、double 型賦值給 int 型

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


int、char 型賦值給 float、double 型

補(bǔ)足有效位(后面添 0)


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

數(shù)值賦給 int 型的低 8 位(存入的是字符的 ASCII 碼),其他位補(bǔ) 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(稱為 符號擴(kuò)展)


unsigned int 型賦值給 int 型

直接傳送數(shù)值


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

直接傳送數(shù)值


強(qiáng)制類型轉(zhuǎn)換

強(qiáng)制類型轉(zhuǎn)換只是 臨時 轉(zhuǎn)換,強(qiáng)制轉(zhuǎn)換運(yùn)算符組成的運(yùn)算表達(dá)式的一般形式為:

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

注:

不管被轉(zhuǎn)換的是表達(dá)式或者單個變量都需要用括號括起來


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

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

   #include    #include    using namespace std;


字符輸入 -- getchar

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

   char a;    a = getchar();

注:

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

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

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


字符輸出 -- putchar

putchar 函數(shù)是字符輸出函數(shù),向標(biāo)準(zhǔn)輸出設(shè)備輸出 單個 字符數(shù)據(jù)


   putchar(a);



標(biāo)準(zhǔn)輸入 -- scanf

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


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

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

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

注:

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

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


標(biāo)準(zhǔn)輸出 -- printf

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

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


流輸入 -- cin

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

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


流輸出 -- cout

cout 和 流插入運(yùn)算符  一起使用,向標(biāo)準(zhǔn)輸出設(shè)備輸出數(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 庫,在時效上和格式化方面,scanfprintf 都優(yōu)于 cin 和 cout,但是就簡便而言,后者更優(yōu)


習(xí)題

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


   http://noi./


注:

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

絕對值函數(shù)

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

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

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

向下取整

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

向上取整

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

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

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

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

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

隨機(jī)函數(shù)

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

平方根函數(shù)

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




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

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多