1 變數和基本型別

2022-03-11 01:41:45 字數 2449 閱讀 4290

型別主要是用來告訴我們資料代表什麼意思,對資料該執行什麼操作。

1.1 基本資料型別

c++中有布林型、字元型、整型、浮點型等。(其中整數、字元和布林的算術型別合稱為整型).它與在計算機儲存器中的表示方式緊密相關。計算機以位序列儲存資料,每位儲存0或1.通常在計算機中int儲存長度為1個機器字長。

1 #include 2

using

namespace

std;

3int

main()

4

其在計算機中儲存的長度為:11

2444

1.2 越界處理

當我們給指定型別賦值,但是超過了指定型別的長度,那麼編譯器就會對其的可能取值數目求模,然後取得所求值。

例如:

1 #include 2 #include 3

using

namespace

std;

4int

main()

5

對於第6行,根據char的模的值為256,若把資料型別改為signed,輸出結果相同,為:

9744

但是倘若我們的cr的值在第8行若為賦值,那麼結果就會有所不同了。如當cr的值為-1時:

對於signed char其值的表示範圍為-128-127,那麼輸出結果為:

97-1

對於unsigned char其值的表示範圍為0-255,那麼輸出結果為:

97255

1.3 型別檢查

c++是一種靜態型別語言,在編譯時會做型別檢查。在操作時,資料型別以及表示式是否合法是通過編譯器檢查的,如果不合法,那麼編譯器就會提示錯誤,而不會產生可執行檔案。所以,在我們使用變數的時候必須首先確定變數的型別。

1.4 初始化

對於變數定義,我們要確定他的型別和識別符號(可以是字母、數字、下劃線),當然還可以給物件提供乙個初始值。初始化變數有兩種方式:

直接初始化 int i(0); 

複製初始化 int i=0; 

1

string all_nines=(3,'

9');//

直接初始化,裡面通過乙個計數器和乙個『9』字元初始化物件。 與第二行的表示式等價。

2string all_nines="

999";//

複製初始化

3 cout<

在以往中經常使用例如int i=0;但是要搞清楚,初始化不是賦值,賦值是擦除物件的當前值,然後再給他賦予新值。直接初始化的語法更靈活且效率更高。對於內建型別的來說,直接初始化與複製初始化幾乎沒有什麼差別。對於類型別有些初始化只能用直接初始化。

1.5 變數的宣告和定義

變數的定義:用於為變數分配儲存空間,還可以為其指定初始值。

變數的宣告:只是用來向程式表明變數的型別和名字。可以使用extern關鍵字宣告變數名而不定義它,也就是說extern並沒有在記憶體裡開闢空間,只有當extern位於函式外才可以包含初始化式。例如可定義為:extern int i=1;

程式中可以多次宣告,但是只能定義一次。

1

extern

int i;//

申明但是並不定義

2int i;//

申明

在多個檔案中使用的變數都需要與定義分離的宣告。在這種情況下,乙個檔案含有變數的定義,使用該變數的其他檔案則包含該變數的宣告(而不是定義)。

1.6 引用

非const引用只能繫結到與該引用相同的型別。

const引用可以繫結到不同但相關的型別的物件或繫結到右值。

1

int ival1=2; //

引用就是別名

2double dval=2.3;3

int &ival2=ival1;

4const

int x=2; //

const是指向const物件的引用

5const

int &x1=x;

6const

int &x2=x1+ival1; 7//

int &val=dval; 非const物件只能引用到同型別

8const

int &val=dval;

9 cout10 cout<

1.7 typedef名字

typedef可出現在程式的任何位置,其本身並沒有引入新的型別,只是現有資料型別的別名。

目的:隱藏特定型別的實現,強調使用目的。

簡化複雜型別定義,便於理解。

允許一種型別用於多個目的,同時使得每次使用該型別的目的更明確。

變數和基本型別

算術型別 arithmetic type c 標準規定了每個算術型別的最小儲存空間,但允許編譯器使用更大的儲存空間。事實上,對於int型,幾乎現在所有的編譯器使用的儲存空間都比所要求的大 也表明,在編寫程式時不能對這些型別的大小做任何假設 c 算術型別最小儲存空間規定如下 注 要特別注意int型,並...

變數和基本型別

c 程式通常由許多檔案組成,為了讓多個檔案訪問相同的變數,c 區分了宣告和定義。變數的定義 definition 用於為變數分配儲存空間,還可以為變數指定初始值。在乙個程式中,變數有且僅有乙個定義。c 支援兩種初始化變數的形式 複製初始化 copy initialization 和直接初始化 dir...

變數和基本型別

一 資料型別 c 主要有bool,char,short,int,long,long long float,double,long double,wchar t 寬字元 char16 t char32 t unicode字元 每個型別對應不同的位元組尺寸,以上型別都是有符號的,加上關鍵字unsigne...