1基本內建型別:
c++ 定義了一套包括算術型別和空型別在內的基本資料型別。算術型別包括字元,整型數,布林值和浮點數。空型別不對應任何具體地值,僅用於特殊的場合,例如函式不返回任何值時使用空型別作為返回型別。
算術型別分為兩大類:整型(包括字元和布林型別在內)和浮點型。
帶符號型別和無符號型別:除去布林型別和擴充套件的字元型別外,其他整型可以劃分為帶符號的(signed)和無符號的(unsigned)兩種。型別 int, short, long 和 long long 都是帶符號的。與其他整型不同,字元型被分為三種:char, signed char 和 unsigned char。型別 char 和型別 signed char 並不一樣。儘管字元型有三種,但是字元的表現形式卻只有兩種:帶符號的和無符號的。型別char 實際上會表現為上述兩種形式中的一種,具體是哪種由編譯器決定。
型別轉換:
bool b = 42; // b為真
int i = b; // i 的值為1
i = 3.14; // i 的值為3
double pi = i; // pi的值為3.0
unsigned char c = -1; // 假設 char 佔8位元,c的值為255
signed char c2 = 256; // 假設 char 佔8位元,c2 的值是未定義的
note: 當我們賦給無符號型別乙個超出它表示範圍的值時,結果是初始值對無符號型別表示數值總和取模後的餘數。當我們賦給帶符號型別乙個超出它表示範圍的值時,結果是未定義的。
當從無符號數中減去乙個值時,不管這個值是不是無符號數,我們都必須確保結果不能是乙個負值。
預設初始化:
如果是內建型別的變數未被顯式初始化,它的值由定義的位置決定。定義於任何函式體之外的變數初始化為 0 。定義在函式體內部的內建型別變數將不被初始化。
2 變數:
變數宣告和定義:
宣告使得名字為程式所知,乙個檔案如果想使用別處定義的名字則必須包含對那個名字的宣告。而定義負責建立與名字關聯的實體。
extern int i; // 宣告 i 而非定義 i
int j; // 宣告並定義j
3 復合型別:
復合型別是指基於其他型別定義的型別。c++ 語言有幾種符合型別,例如引用和指標。
引用:引用是為乙個已經存在的物件所起的另外乙個名字。引用必須被初始化。
int ival = 1024;
int &refval = ival;
指標:指標指向物件,允許使用操作符*訪問物件
int ival = 42;
int *p = &ival;
cout << *p; // 輸出42
空指標不指向任何物件
int *p1 = nullptr; // 等價於 * p1 = 0
int *p2 = 0;
int *p3 = null; // 等價於 * p3 = 0
int 變數直接賦給指標是錯誤的,例如
int zero = 0;
p1 = zero;
應用和指標都能提供對其他物件的間接訪問,然而在具體實現細節上二者有很大的不同,其中重要的一點就是引用本身並非乙個物件。一旦定義了引用,就無法令其再繫結到另外的物件,之後每次使用這個引用都是訪問它最初繫結的那個物件。指標和它存放的位址之間就沒有這種限制了。
void* 指標
void* 是一種特殊的指標型別,可以存放任意物件的位址。
double obj = 3.14, *pd = &obj;
void *pv = &obj;
pv = pd;
利用void * 指標能做的事兒比較有限:拿它和別的指標比較、作為函式的輸入或輸出,或者賦給另外乙個void*指標。不能直接操作void*指標所指向的物件,因為並不知道這個物件到底是什麼型別。
復合型別的宣告
定義多個變數
int* p1, p2; // p1 是指向int 的指標, p2 是int
指向指標的指標
int ival = 1024;
int *pi = &ival; // pi指向乙個int型的數
int **ppi = π // ppi指向乙個int 型的指標
C 基本型別和變數
算術型別包含整型 包括字元和布林型別 和浮點型。主要型別 bool char wchar t char16 t char32 t short intlong long long float double long double 在程式中,帶符號型別和不帶符號型別最好不要混用,容易出現錯誤。如下圖 2...
C 變數和基本型別
變數的宣告與定義 聲加粗樣式明用於向程式表明變數的型別和名字,用extern表示,它不分配記憶體,定義則用於分配儲存空間,當然,定義也是宣告。const const修飾變數後,其值不可被修改,任何修改的嘗試都會導致編譯錯誤。引用 即物件的另乙個名字,在實際程式中主要用作函式的形參。1 引用是它繫結的...
c 基本型別和變數
基本型別,c 內建型別 setlocale lc all,chs bool bo true char ch a wchar t wch l 中國 short sh 32767 32768 32767 int i 10 32768 32767 long l 123456 2147483648 2147...