第2章 變數和基本型別

2021-05-25 16:59:45 字數 1864 閱讀 7788

這章要學會的:

2.1 基本內建型別

2.2 字面值常量

2.3 變數

2.4 const限定符

2.5 引用

2.6 typedef 名字

2.7 列舉

2.8 類型別

型別告訴我資料代表什麼意思以及可以對資料執行哪些操作.型別確定了資料和操作在程式中的意義。c++提供了通過組合現有類產生新類的方法。

2.1 基本內建型別

c++有9種資料型別:

bool

char

wchar_t

short

intlong

float

double

long double

c++包含c89部分,所以有夠低的層操作硬體,c++的內建型別與其在計算機的硬體儲存器中的表示方式緊密相關。

在位這一級上,儲存器是沒有結構和意義的。讓儲存資料有結構的最基本的方法是用塊(chunk)處理儲存。大多數計算機將儲存器中的每乙個位元組和乙個稱為位址的資料關聯起來。可以用位址表示從該位址開始的任何幾個不同大小的位集合。

因為c++是"強型別"的[型別優先,型別決定大多數東西],就像你是什麼樣的人,就應該採用什麼方式跟你溝通一樣。所以程式中任何變數(或函式)必須有「先說明後使用」.定義型別意義至少有兩個方面:決定它在記憶體中的怎麼組織的,及可對這個東西怎麼合法操作,有點像離散數學中的「運算系統」。

一般,short 型別為半個機器字長,

int 型別為乙個機器字長,

long型別為乙個或兩個機器字長;

bool 型別表示真值 true, false.

char 型別有 三種 不同的型別:普通char, unsigned char 和 signed char,雖然char 有三種不同型別,但只有兩種表示方式。可以使用 unsigned char 或 signed char 表示 char 型別。使用哪種 char 表示方式由編譯器而定.

整型的表示: 無符號型中所有位都表示數值。c++標準沒定義 signed 如何用位來表示,而是每個編譯器決定。如果把乙個超出範圍的值賦給乙個指定型別的物件時,1>對於unsigned來說,編譯器必須調整越界值使其滿足要求(將該值對unsigned型別取值數求模).把負值賦給 unsigned物件也是完全合法的,其結果是該負數對該型別的取值個數求模後的值。

浮點型: 這裡的型別是指要的值被cpu的控制器從cpu的浮點暫存器(乙個80位的[x86])中取出按ieee754的標準儲存到記憶體中的形式,有long double, double, float.

標準庫定義了一組型別用於統計物件的大小。因此,當計數這些元素時使用標準庫定義的型別總是正確的,其它情況下,使用unsigned型別比較明智,可以避免值越界導致結果為負的可能性。

2.2 字面值常量(literal constant)

稱之為字面值是因為只能用它的值稱呼它,稱之為常量是因為它的值不能修改。只有內建型別存在字面值,沒有類型別的字面值。

字面值的幾種情況:

1。整型字面值

可以使用10,8,16進製制,這些進製不會改變其二進位制表示形式。 eg:  1l ,2u

2。浮點字面值

可以用十進位制或科學記數法來表示浮點字面值常量。eg: 3.14159f, .001f, 1e-3f, 1.2345e1l

3。布林字面值

true,false是bool型的字面值

4。字元字面值

char,或 wchar_t型別的值.

5。非列印字元的轉義序列

6。字串字面值

為了相容c語言,c++中所有的字串字面值都由編譯器自動在末尾加乙個空字元.如果是寬字串就以寬空字元結束。如果連線字串字面值和寬字串字面值,其結果是未定義.

物件是記憶體中具有型別的區域,說得更具體一些,計算左值表示式就會產生物件。

第2章 變數和基本型別

1.算術型別 bool 取值為真或假 int 16位 65536long 32位 4 294 967 296 longlong 64位 18 446 744 073 709 551 616 int 64 64位 18 446 744 073 709 551 616 2.由單引號括起來的乙個字元稱為c...

第2章 變數和基本型別

long是32位的長整型,long long是64位的長整型,其是c 11新定義的。除去布林型和擴充套件的字元型之外,其他整型可以劃分為帶符號的和無符號的兩種。其中char和signed char並不一樣。儘管字元型有3種,但是字元的表現形式卻只有2種 帶符號的和無符號的。型別char實際上會表現為...

C Primer第2章 變數和基本型別

c 定義了一套包括算術型別和空型別在內的基本資料型別。算術型別分為兩類 整型和浮點型。算術型別的尺寸在不同機器上有所差別。型別含義 最小尺寸常見 bool 布林型別 未定義 char 字元8位 wchar t 寬字元16位 char16 t unicode字元 16位 char32 t unicod...