筆記 C primer第二章 基本內建型別

2021-06-19 22:44:52 字數 3381 閱讀 5952

一、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...