一、1、c++基本內建型別
整型、浮點型、字元型、布林型別,此外還有void型別
void型別:沒有對應的值,通常用作無返回值函式的返回型別。
算術型別的儲存空間依機器而定,儲存空間指的是表示該型別的二進位制位數,各類型別占用空間如下表:
在vc2010下,short為16位,int 和 long 為32位,float為小數點後儲存六位
二、基本型別
(一)整型
1、整型:整數、字元值、布林值的算術型別合稱
(1)char型別通常是用於單個機器位元組
wchar_t型別用於擴充套件字符集,比如漢字、日語
(2)塊的儲存
大部分計算機使用特定位數的塊來儲存資料,通常8位的塊作為乙個位元組,32位的塊或者4個位元組成為「字」;
大多數計算機將每乙個位元組和乙個稱之為位址的數關聯起來;
所以要讓位址有意義,必須知道位址中儲存的型別,才能知道需要多少位和如何解釋這些位。
(3)bool型別的值僅有true和false,在程式設計中,可以用數值直接賦值,0代表false,非0代表true
(4)帶符號的型別和不帶符號的型別
除bool型別外,整型可帶符號和不帶符號,帶符號可表示正負數,不帶符號僅能表示》=0的數;
整型int、short、long預設帶符號,unsigned int為不帶符號,可縮寫為unsigned;
程式設計中用到char一般指的是signed char,它和unsigned char的區別是型別轉換的時候符號位的區別。
2、整型值表示
符號位為1,表示的是負數;
符號位為0,表示的是0或者正數。
乙個8位的signed整數取值範圍為-128~127,分析結果如下:
正數:0000 0000 - 0111 1111,對應十進位制為0 - 127
負數:1000 0000 - 1111 1111,在表達中1000 0000被規定為最小值,即-128,那麼取值範圍就是-128~-1,計算機中負數以補碼形式表示。
3、整型的賦值
當把超出範圍的值賦給物件時,其結果取決於signed和unsigned型別,分析如下:
(1)對於unsigned型別:以unsigned char為例,取值範圍為0-255,當超出這個值,賦值336,則編譯器會取該值對256模後的值,實際賦值為80;當賦值為負數,如-1時,實際賦值為-1對256求模的值為255;
(2)對於signed型別,對賦給超出範圍值時,一般取值為該值對該型別數目求模後的值,如取值-129,實際賦值為-129對256求模為127.
(二)浮點型
1、三種型別:
float:單精度浮點數,在vc2010下用32位來表示
double:雙精度浮點數,在vc2010下用64位來表示
long double:擴充套件精度浮點數,在vc2010下用64位來表示
2、計算資料時一般使用int型別,而不使用short和char型別:因為short和char型別容易造成越界;
計算浮點數時,一般使用double,因為計算滿足要求,且相對使用float代價可忽略不計;
計算浮點數時可以有負數,沒有unsigned 和 signed的分別。
(三)常量
1、tips:只有內建型別存在常量,沒有類型別的常量
2、整型常量規則
(1)定義方式:十進位制、八進位制、十六進製制
20//decimal
024//octal,以0開頭
0x14
//hexadecimal,以0x或者0x開頭
此外,通過在常量最後加上l或者l,指定常量為long型別。(注:一般使用大寫,小寫易混淆)
類似定義:
128u
//unsigned
1024ul
//unsigned long
1l//long
注:沒有short型別的常量
3、浮點常量規則
(1)表示方式:十進位制或者科學計數法,預設的浮點常量為double型別
(2)在數值後加上f或者f表示單精度,加上l或者l表示雙精度,常用表達法如下:
十進位制:
3.14159f
.001f
科學計數法:
3.14159e0f
1e-3f
4、布林常量和字元常量
(1)bool常量:true和false
(2)可列印字元常量用單引號來定義:
'a''2'
','' '//blank
以上定義的是字元型常量,加上字首l,變成寬型別wchar_t.如l'a'
(3)非列印字元的轉義序列
非列印字串行包括:退格、控制符、特殊字元(單引號、雙引號、反斜線),c++中定義的轉義字元如下:
換行符 \n
水平製表符 \t
縱向製表符 \v
退格鍵 \b
回車符 \r
進紙符(走紙換頁) \f
報警(響鈴)符 \a
反斜線 \\
疑問號 \?
單引號 \'
雙引號 \"
八進位制表示轉義字元
\ooo
//ooo表示三個八進位制數,如響鈴符可以表示為\7(檢視ascii碼表)
十六進製制表示轉義字元
\xddd
//它由乙個反斜線,乙個x,乙個或者多個十六進製制數組成
注:'\0'通常表示字串的結束
5、字串
(1)表示方式:用雙引號括起來的乙個或者多個字元表示,不可列印字元用轉義字元表示
eg: "\ncc\toptions\tfile.[cc]\n"
為了相容c語言,c++在每個字串後自動新增乙個空字元
eg: 'a' "a"分別表示字元常量a、字串a和\0
此外,存在寬字串常量,表示如下:
eg: l"a wide string literal",表示字串中每個字元都是寬字元
6、字串的連線
(1)兩個相鄰的僅由空格、製表符或者換行符分開的字串可連線成乙個新的字串
eg: std::out << "a multi-line "
<< "string literal "
<< "using connection"
<< std::endl;
輸出值為:a multi-line string literal using connection
如果連線的是字串和寬字串,其結果是未定義(錯誤)。
7、多行字串
(1)更基本的方法,即格式化輸出法:
這個特性常用來寫較長的字串。
eg: std::cou\
t << "hi" <==>>
std::cout << "hi" << std::endl;
注:反斜線必須是當行的末尾,不允許在末尾加上注釋或者空格
附:ascii碼表
c primer 筆記,第二章
初始化的含義是建立變數並賦予其乙個初始值,賦值的含義是將物件當前的值擦除 初始化四種方式 int n 0 int n 用花括號稱為列表初始化,當使用列表初始化且初始值存在丟失的風險,編譯器會報錯 int n int n 0 定義於函式體外的變數被初始化為0,函式體內部的內建型別變數不被初始化,類的物...
C Primer 筆記 第二章
c primer 第二章 變數和基本型別 2.1基本內建型別 有算數型別和void 型別 算數型別儲存空間大小依及其而定。算數型別表 型別含義 最小儲存空間 bool 布林型 char 字元型8 wchar t 寬字元型 16short 短整型16 int整型 16long 長整型32 float ...
c primer 學習筆記(第二章)
第二章 變數和基本型別 2.1基本內建型別 基本內建型別中,因為位數的不同,這些型別所表示的最大最小值也因機器的不同而不同。即 c 基本資料型別的儲存空間依機器而定 型別含義 最小儲存空間 bool 布林型 char 字元型8bit wchar t 寬字元型 16bit short 短整型16bit...