c primer 學習筆記(第二章)

2021-06-20 08:56:09 字數 3827 閱讀 7956

第二章 變數和基本型別

2.1基本內建型別

基本內建型別中,因為位數的不同,這些型別所表示的最大最小值也因機器的不同而不同。

即「c++基本資料型別的儲存空間依機器而定 。」

型別含義

最小儲存空間

bool 

布林型-

char

字元型8bit

wchar_t

寬字元型

16bit

short 

短整型16bit

int整型

16bit

long

長整型32bit

float

單精度浮點型

6位有效數字

32bit

double

雙精度浮點型 

10位有效數字

64bit

long double

擴充套件精度浮點型

10位有效數字

64bit

c++沒有規定每一種資料所佔的位元組數,但規定了

int型資料所佔的位元組數不大於

long int

型,不小於

short型。

c++的基本資料型別的儲存空間實質上隨cpu字長的不同而不同 。

c++的編譯器有乙個不成文的約定:就是根據機器字長來定義int的長度,最能反映**的效率。但不是所有編譯器都遵循這個規定,所以, 想要保證程式中的基本資料型別的值不越界,必須了解你所使用的編譯器 。

一般的,如在visual c++中,

int佔

4byte

,short

佔2byte

,long

佔4byte

或8byte。

經驗:1.

在大多數機器上,用整型

int進行計數,很少使用

short。

2.使用

double

這種浮點型通常不會出錯,它有

10位小數,而僅有

6位小數的

float

很可能不夠用。

2.2字面值常量

20    //decimal十進位制

024   //octal八進位制

0x14  //hexadecimal十六進製制    

//以上均表示十進位制的20

通過加乙個字尾,改變字面值常量的型別

128u  //unsigned

1l   //long,這裡

l大寫小寫均可,但提倡用大寫

3.1415f      //單精度

float

型,這裡

f大寫小寫均可,

f只可出現在小數後面,整數不可以!

3.1415e0f    //表示

3.1415*10^0

並且是float型

'a'      //char

l'a'     //wchar_t

轉義字元

轉義字元

意義ascii碼值(十進位制) \a

響鈴(bel)

007\b退格(bs)

008\f換頁(ff)

012\n換行(lf)

010\r回車(cr)

013\t水平製表(ht)

009\v垂直製表(vt)

011\\反斜槓

092\?

問號字元

063\'

單引號字元

039\"

雙引號字元

034\0

空字元(null)

000\ddd

任意字元

三位八進位制

\xhh

任意字元

二位十六進製制

當然,也可以用ascii碼來表示。

如\7    

表示 響鈴符

字串字面值"hello world!"佔13

個位元組,最後自動加上乙個

'\o'

空字元正如寬字元字面值,l"hello world!"為寬字串字面值,佔

26個位元組,最後自動加上乙個

"\0"

寬空字元結束。

相同型別的字串字面值可以連線,但字串字面值可寬字串字面值連線未定義!

如,可以這樣寫 cout<

"string literal"

"using concatenation"

注意:分兩行書寫的字串字面值必須在第一行末尾加上反斜線\

習題2.10

[cpp]view plain

copy

#include 

using

namespace

std;  

intmain()    

修改後[cpp]view plain

copy

#include 

using

namespace

std;  

intmain()    

求2^10

[cpp]view plain

copy

#include 

using

namespace

std;  

intmain()  

cout<

<

return

0;  

}  

習題2.11

[cpp]view plain

copy

#include 

using

namespace

std;  

intmain()  

cout<

<

return

0;  

}  

2.3變數

左值和右值

左值可以放在賦值號的左邊或者右邊,而右值只能放到右量。

左值是變數的位址或者是乙個代表物件在記憶體中的位置的表示式,右值是變數的值,常量或者常變數。

如val1=val2/8  //

這裡val1

是左值,

val2

是右值!

表示式不可是左值!!

物件是記憶體中具有型別的區域!

變數名由數字,字幕,下劃線組成,並且以字母和下劃線開頭!!變數名不宜太長,不可為c++

中的關鍵字

~!!以下為幾個重要的

c++關鍵字:

定義物件(初始化)

初始化分為:1

複製初始化  如:

int a=1024;

2直接初始化  如:

int a(1024);   //

直接初始化更靈活,效率更高!

切記,初始化不是賦值,初始化是建立變數並給他賦予新值,而賦值是擦除原來的值並用新值替代的過程。

內建變數初始化規則:在函式體內定義,自動初始化為零。在函式體外,不進行初始化!!

建議每個內建型別的物件都要初始化!!

類的初始化:1

有預設建構函式的,如

string

預設為空字元

2其它的必須顯式的定義

引用reference

const引用是指向

const

的引用,非

const

引用是指向非

const

的引用!

C primer學習筆記(第二章)

typedef char pstring const pstring cstr 0 這裡的const修飾的是指標,所以pstring是乙個常量指標,而不是指向常量的指標 const pstring ps 不能錯誤地替換pstring 為 char const char cstr 0 這樣將導致錯誤的...

c primer 筆記,第二章

初始化的含義是建立變數並賦予其乙個初始值,賦值的含義是將物件當前的值擦除 初始化四種方式 int n 0 int n 用花括號稱為列表初始化,當使用列表初始化且初始值存在丟失的風險,編譯器會報錯 int n int n 0 定義於函式體外的變數被初始化為0,函式體內部的內建型別變數不被初始化,類的物...

C Primer 筆記 第二章

c primer 第二章 變數和基本型別 2.1基本內建型別 有算數型別和void 型別 算數型別儲存空間大小依及其而定。算數型別表 型別含義 最小儲存空間 bool 布林型 char 字元型8 wchar t 寬字元型 16short 短整型16 int整型 16long 長整型32 float ...