C 學習札記 2011 10 06

2022-02-08 02:58:23 字數 2701 閱讀 4951

1、為了書寫方便,可將short int簡寫成short,即預設情況下short表示的意思是短整形,可類推long則表示長整型

2、單精度:float(32bit),雙精度:double(64bit),長精度:long double(80bit);統稱為浮點型(或實數型別)

3、在c++中,整型常量可以用十進位制、八進位制和十六進製制3種不同進製表示

十進位制整數:直接給出數字,例如:123、0、-135等

八進位制整數:在第一位數字前加0,例如:012、-017等

十六進製制整數:在第一位數字錢前加0x,例如0x15、0x2d、0x1fc7等

4、在開發系統軟體或表示位址時,使用十六進製制或八進位制可能或更方便

5、在c++中,由於整型數還可以分為長整型、短整型和無符號整型等型別,因此,整型常量也可以通過加字尾的方式進行說明。例如,135l、789u、48529ul等等。其中,長整型用字尾l或l表示;無符號整型用字尾u或u表示

6、浮點數常量只能由十進位制來表示,有小數和帶指數的科學計數法兩種表現形式;在科學計數法中「x10」用字母「e」或者「e」表示;在用指數形式表示的浮點數中,指數部分可以是正數或負數,但必須是整數

7、在浮點數常量中,字尾依然可以用f或f單精度數,l或l來表示長精度數

8、在c++的數值常量不能有逗號、空格或其他非法字元;數值常量的值不能超過編譯程式所規定的取值範圍,否則將產生溢位錯誤

9、在c++中用一對單引號引起來的乙個字元表示乙個字元常量

10、字串常量在記憶體中儲存時,系統會自動在其末尾加上乙個串結束表示「\0」,所以程式中長度為n個字元的字串常量,其在記憶體中占有n+1個儲存空間

11、在c++中,使用const關鍵字定義符號常量時必須在定義時進行初始化(賦值)。注意,在const關鍵字後需加上資料型別,而使用巨集定義(#define)時其後不需要使用資料型別

12、在c++中,變數應「先定義,後使用」

13、在c++中,變數名由大、小寫26個英文本母、數字0~9和下劃線「_」組成,並且只能由字母和下劃線開頭(即第乙個符號不能為數字)

14、在c++中,關鍵字(保留字)不能用作變數名

15、c++語言對大小寫是敏感的,也就是說,會把age、age和age認為是3個不同的變數;在書寫程式時,會把小寫字母作為變數,大寫字母作為常量

15、在c中,所有變數必須在函式的開頭位置集中定義;而在c++中,允許將變數定義放在任意位置,只要滿足引用前進行定義的要求即可

16、變數是乙個用來存放可變資料的儲存空間,將資料存入該儲存空間的操作就稱作變數賦值

17、賦值過程中,賦值號的左邊必須是乙個變數,不能是常量或者表示式

18、因為賦值符「=」具有最低的運算優先順序,並且運算的結合方向是從右到左,因此,在賦值表示式中會先計算賦值符右邊表示式的值,再將其結果賦值給左邊的變數

19、在c++中,對變數進行初始化有兩種方式:一種是使用「=」,例int a = 16;另一種是使用「()」,例如int a(16)

20、在c++中,為了便於程式錄入,其中的表示式必須直行書寫(即寫在同一行)

21、取餘運算「%」中參加運算的兩個數都必須是整型數(即取餘符左右運算元都必須為整型數)

22、自增運算子(++)和自減運算子(--)都只能作用於單個變數,而不能作用於表示式或常量

23、位運算即指按二進位制位進行逐位運算

24、在位運算中,位與操作情況下,左右運算元都為1時,結果為1,左右運算元都為0時,結果為0,左右運算元不同時,結果為0;位或操作下,左右運算元相同為1,左右運算元同為0時,結果為0,左右運算元不同時為1;異或操作的情況下,左右運算元相同時為0,不同時為1

25、在位運算的移位操作中,移出的位被捨棄,空出的位補0

26、逗號運算子(,)的運算優先順序是所有運算子中最低的。使用逗號運算子可將多個表示式組合成乙個表示式,例如e1,e2,e3,e4,其中e1,e2,e3和e4為4個表示式,在計算逗號表示式的值時,按從左往右順序依次分別計算個表示式的值,而整個表示式的值的型別由最右邊的表示式決定,即在本例中,整個逗號表示式的值的型別由e4決定

27、使用長度運算子sizeof可得到資料型別或變數在記憶體中所佔的位元組數

28、在單目運算中,&符號表示取位址,*表示取內容

29、運算子的優先順序說明了運算子在運算中的先後順序:

圓括號的運算優先順序最高,逗號運算子的優先順序最低,賦值符號的優先順序排倒數第二,

單目運算子的優先順序高於雙目運算子,

在雙目運算子中,算術運算子的優先順序最高,關係運算子的優先順序次之,邏輯運算子的優先順序最低,

在算術運算子中,(*、/)高於(+、-)

在關係運算子中,(>、>=、<、<=)高於(==、!=),

在邏輯運算子中,邏輯非(!)最高,邏輯與(&)次之,邏輯或(|)最低

30、在運算子的結合性中,大多數運算子的結合順序是從左到右,但也有3類運算子的結合順序是從右到左,即單目運算子、3目運算子和賦值運算子

31、在表示式中,多使用一些圓括號並不會降低程式的執行效率,因此,在書寫複雜表示式時,可適當增加一些圓括號來提高程式的可閱讀性

32、資料型別轉換規則:由「較低階」的型別向「較高階」型別轉換(即所佔記憶體空間較小的資料型別向所佔記憶體空間較大的資料型別轉換)

short,char→int→unsigned→long→unsigned long→double←float

當遇到賦值符左邊的表示範圍小於右邊時,表示式的值在轉換時將會被截斷,從而導致資料精度受到損失

33、無論強制型別轉換還是自動型別轉換都是暫時性的,都是僅為本次運算或賦值的需要而進行的,他們並不會改變變數在定義時所規定的資料型別

C 學習札記20140312

謹記,但凡使用了迭代器的迴圈體,都不要向迭代器所屬的容器新增元素!vector物件可以動態增長,但不能應用在範圍for的語句中對vector物件增加元素,還有任何改變vector物件容量的操作都會使得該物件的迭代器失效!不能解引用迭代器的end成員所指向的元素,因為end是指向迭代器的尾後,解引用就...

C 學習札記20140318

陣列的兩個特殊性質1不允許拷貝陣列,2使用陣列時會將其轉換成指標 我們可以把形參寫成類似陣列的形式 儘管形式不同,但是這三個函式是等價的,形參完全一樣 const int void print const int void print const int 函式的意圖是作用乙個陣列 void prin...

C 學習札記 2011 09 30

1 物件由屬性 attribute 和服務 service 兩部分組成 2 物件的屬性值只應由這個物件的服務來讀取和修改 3 具有相似屬性和行為的一組物件,成為類 class 4 在已有類的基礎上通過增加新的特性而派生出新的類,稱作繼承 原有類稱作一般類或基類,新建立的類則稱為特殊類或派生類 5 繼...