天天看點

[C++][基礎]1_變量、常量和基本類型

1.1     算術類型

類型 最小存儲空間(位)
bool 1
char 8
wchar_t 16
short
int
long 32
float 6位有效數字
double 10位有效數字
long double
1.2     常量

不能修改的值成為常量。

1.3     變量

與常量相反,是可以修改的值。

1.4     引用

引用主要用于函數的形參。引用必須用與該引用同類型的對象初始化。

1.4.1         

引用是别名,所有針對引用的操作實際上都是作用在該引用的綁定對象上。引用一旦綁定對象後,不能再綁定到其他對象。

1.4.2         

const引用

const引用是指向const對象的引用。

Eg:      const

int ival = 1024;

            const

int& refval1 = ival;          //ok

            int&

refval2 = ival;                     //error

1.5     const 限定符

const可以用來定義常量。

1.6     typedef

用來定義類型的同義詞:

Eg:   typedef string StuName;

1.7     數組

1.7.1         

數組的定義和初始化

數組的維數必須使用大于等于1的常量表示; 數組的維數必須在方括号内定義。

1.      

初始化數組元素

如果沒有顯示初始化元素, 則數組元素會像普通變量一樣初始化:

●在函數體外定義的内置數組,其元素初始化為0;

●在函數體内定義的内置數組,其元素無初始化;

●不管在什麼位置,如果元素類型為類,則自動調用該類的預設構造函數,如果沒有預設構造函數,則必須提供顯示初始化。

2.      

特殊的字元數組

使用一組字元字面值初始化字元數組時,一定要記得添加結束字元串的空字元。

Eg:

const char cz[6] = "Daniel";      //Daniel is 7 elements

3.      

數組不可以直接複制或指派

int ia[] = {0, 1, 2};

int ia2[](ia);      //error

int ia3[3];

ia3 = ia;             //error

1.7.2         

數組的操作

數組下标的正确類型為size_t。

1.8     指針 1.9     C 風格字元串

1.9.1         

C風格字元串的使用

标準庫函數

strlen(s)

strcmp(s1, s2)

strcat(s1, s2)

strcpy(s1, s2)

strncat(s1, s2, n)

strncpy(s1, s2, n)

永遠不要忘記字元串結束符null

char ca[] =

{'C', '+', '+'};              //沒有結束符

cout << strlen(ca) << endl;        //傳回的數值不正确,結果不可預料

1.9.2         

建立動态數組

動态數組的定義

int *pia = new int[10];

初始化動态配置設定的數組

string *psa = new string[10];           //10個未初始化的string

int *pia = new int[10];                        //10個未初始化的int

int *pia2 = new int[10]();          //所有元素初始化為0

const對象的動态數組

必須為這個數組提供初始化;因為每個數組元素都是const對象,是以無法指派。

const int* pci_bad = new const

int[10];           //error: 未初始化

const int* pci_ok = new const

int[10]();  //ok: 所有元素預設初始化為0

const string* pcs_ok = new const

string[10]; //ok: 初始化10個空字元串

4.      

允許動态配置設定空數組

size_t size = getSize();

int* p = new int[n];

for (int* q = p; q != p + size; q++)

         /* process */

5.      

動态空間的釋放

動态配置設定的記憶體必須釋放,否則會造成記憶體洩露,耗盡資源。

 Eg:

delete[] pia;

6.      

動态數組的使用

1.9.3         

新舊代碼相容

混合使用string标準庫和C風格字元串

         string

str = "hello";

char* cStr =

str.c_str();

使用數組初始化vector

const size_t ARR_SIZE = 6;

int aiData[ARR_SIZE] =

{1,2,3,4,5,6};

vector<int> ivec(aiData, aiData

+ ARR_SIZE);

繼續閱讀