變數和基本型別

2021-08-02 22:14:01 字數 2009 閱讀 5919

####一:資料型別

c++主要有bool,char,short,int,long,long long ,float,double,long double,wchar_t(寬字元),char16_t , char32_t(unicode字元)。每個型別對應不同的位元組尺寸,以上型別都是有符號的,加上關鍵字unsigned會變成無符號型。算術表達時最好不要用char和bool,因為在不同機器上型別不確定。有型別必會接觸到型別轉換的問題:

1> 把非布林型別轉換布林型別,0為false,否則為true。

2>把布林轉換非布林,false結果為0,true為1。

3>把浮點數轉換為整型,只保留小數點之前。

4>把整型轉換為浮點,小數為0。

5>賦給無符號型別超出表示範圍的值時,結果是初始值對無符號型別表示數值總數取模後的餘數,就是負數加上無符號數的模。

6>賦給帶符號型別乙個超出它表示範圍的值時,結果是未定義的。

因此在程式設計的時候要時刻注意型別的變換,不經意之間就會發生錯誤。

轉義序列:兩類字元不能直接使用,一類不可列印。如退格,沒有可檢視;另一類是有特殊含義的字元,如問號,反斜槓。

換行符 \n 橫向製表符 \t 報警符 \a 縱向製表符 \v 退格符 \b

雙引號 " 反斜槓 \ 問號 ? 單引號 』 回車符 \r

####二:變數

對於c++來說,變數可以和物件互換只用,如 int a=0; int是型別,a是變數名,0是給a初始化(初始化不等於賦值,後面會詳解),也可省略,分號結束。未做初始化,值有可能是未定義的,也有可能是預設初始化。變數是可以定義和宣告:

extern int i; //宣告i並非定義i

int j; //定義i

加extern可以在本檔案當中呼叫另外檔案的變數,如果在extern時顯示初始化,就不是宣告而是定義了。變數是可以多次宣告的。重要一點是變數命名要避開關鍵字,同時變數還有作用域的問題,分為全域性作用域和塊作用域,大部分體現在花括號內,c++有域的概念,可以顯示的呼叫不同域內的變數。

####三:復合型別

1.引用

引用是為物件起了乙個別名,比如你爸爸管你叫小莫,媽媽管你叫寶貝,雖然名字不一樣,但是你還是你,沒有變。

int i = 100;   //定義i

int &j = i; //j指向i,別名

int &k; //error 必須初始化

引用並不是乙個物件,所以不能定義引用的引用,而且引用必須型別一致,是乙個物件。

2.指標

指標與引用不同,指標是乙個物件,允許賦值和拷貝,無需初始化:

int *p;

int *p = &i ; //獲取i的位址

可以利用指標訪問物件:

int ival = 42;

int *p = &ival; //p存放變數ival的位址,或者說p是指向變數ival的指標。

cout << *p; //由符號*得到指標p所指的物件,輸出42

*p = 0; //也可以賦值

cout<< *p; //輸出0

空指標定義 int *p1 = nullptr / 0;也有null。需包含cstdlib標頭檔案。指標不像引用,可隨意改變物件和賦值。

指向指標的指標:

int ival = 10;

int *p = &ival;

int **ppi = &p; //**ppi 取出的值為10

指向指標的引用:

int i = 1;

int *p =&i;

int *&r = p; // r對指標p的引用

*r= 0; //i=0

3.const

const是常量,一經確定就不能改變,任何企圖改變他的值都會引發錯誤,所以const限定的值必須初始化。const僅在本檔案內有效,要想全域性需extern加以限制。

變數和基本型別

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

變數和基本型別

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

變數和基本型別

1.變數宣告和定義的關係extern int j 宣告j int j 定義j extern int j 0 定義2.識別符號的組成 3.變數命名規範 4.作用域理解 include 該程式僅用於說明,函式內部不宜定義與全域性變數同名的變數 int i 0 全域性變數 intmain 5.引用 引用並...