C 基礎 1 變數 常量和基本型別

2021-09-22 06:45:13 字數 2913 閱讀 6716

1.1算術型別型別

最小儲存空間(位)

bool 1

char 8

wchar_t 16

short 16

int 16

long 32

float 6

位有效數字

double 10

位有效數字

long double 10

位有效數字

1.2常量

不能修改的值成為常量。

1.3變數

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

1.4引用

引用主要用於函式的形參。引用必須用與該引用同型別的物件初始化。

1.4.1

引用是別名,所有針對引用的操作實際上都是作用在該引用的繫結物件上。引用一旦繫結物件後,不能再繫結到其他物件。

1.4.2const引用

const引用是指向const物件的引用。

eg:      const int ival = 1024;

const int& refval1 = ival;          //ok

int& refval2 = ival;                     //error

1.5const限定符

const可以用來定義常量。

1.6typedef

用來定義型別的同義詞:

eg:   typedef string stuname;

1.7陣列

1.7.1

陣列的定義和初始化

陣列的維數必須使用大於等於1的常量表示; 陣列的維數必須在方括號內定義。

1.初始化陣列元素

如果沒有顯示初始化元素,

則陣列元素會像普通變數一樣初始化:

●在函式體外定義的內建陣列,其元素初始化為0;

●在函式體內定義的內建陣列,其元素無初始化;

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

2.特殊的字元陣列

使用一組字元字面值初始化字元陣列時,一定要記得新增結束字串的空字元。

eg:const char cz[6] = "daniel";      //daniel is 7 elements

3.陣列不可以直接複製或賦值

eg:int ia = ;

int ia2(ia);      //error

int ia3[3];

ia3 = ia;             //error

1.7.2

陣列的操作

陣列下標的正確型別為size_t。

1.8指標

1.9c風格字串

1.9.1c風格字串的使用

1.標準庫函式

strlen(s)

strcmp(s1, s2)

strcat(s1, s2)

strcpy(s1, s2)

strncat(s1, s2, n)

strncpy(s1, s2, n)

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

eg:char ca = ;              //沒有結束符

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

1.9.2

建立動態陣列

1.動態陣列的定義

eg:int *pia = new int[10];

2.初始化動態分配的陣列

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

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

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

3.const物件的動態陣列

必須為這個陣列提供初始化;因為每個陣列元素都是const物件,所以無法賦值。

eg: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.允許動態分配空陣列

eg: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

新舊**相容

1.混合使用string標準庫和c風格字串

eg:string str = "hello";

char* cstr = str.c_str();

2.使用陣列初始化vector

eg:const size_t arr_size = 6;

int aidata[arr_size] = ;

vectorivec(aidata, aidata + arr_size);

C 基礎 1 變數 常量和基本型別

normal 07.8 磅02 false false false en us zh cn x none 1.1 算術型別 型別最小儲存空間 位 bool 1 char 8 wchar t 16 short 16 int 16 long 32 float 6 位有效數字 double 10 位有效數...

C 基礎 1 變數 常量和基本型別

1.1 算術型別 型別最小儲存空間 位 bool 1 char 8 wchar t 16 short 16 int 16 long 32 float 6 位有效數字 double 10 位有效數字 long double 10 位有效數字 1.2 常量 不能修改的值成為常量。1.3 變數 與常量相反...

C 基礎 1 變數 常量和基本型別

1.1 算術型別 型別最小儲存空間 位 bool 1char 8wchar t 16short 16int 16long 32float 6位有效數字 double 10位有效數字 long double 10位有效數字 1.2 常量 不能修改的值成為常量。1.3 變數 與常量相反,是可以修改的值。...