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

2021-08-07 15:31:34 字數 3338 閱讀 9091

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

位有效數字

long double 10

位有效數字

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.

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

eg:int ia = ;

int ia2(ia);      //error

int ia3[3];

ia3 = ia;             //error

1.7.2

陣列的操作

陣列下標的正確型別為

size_t。

1.8

指標

1.9

c風格字串

1.9.1

c風格字串的使用 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 變數 常量和基本型別

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 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 變數 與常量相反,是可以修改的值。...