表示式這章比較簡單,一般有過c的基礎的人都應該問題不大,要知道連我都覺得比較簡單,相信你們肯定更加容易了。
new和delete表示式:動態建立和釋放陣列,定義變數時,必須指定其資料型別和名字。然而動態建立物件時,只需要指定其資料型別,而不必為該物件命名。取而代之的是,new表示式返回值指向新建立物件的指標,我們通過指標來訪問物件:
int i;
int *pi=new int;
這個new表示式在自由儲存區中分配建立了乙個整型物件,並且返回此物件的位址,並且該位址初始化指標pi;
動態建立物件初始化:int i(1024);
int *pi=new int(1024);
string s(10,『9』);
string *ps=new string(10,『9』);
建立const物件的動態分配時必須初始化:const int *pci=new const int(1024);
delete 操作:接著上面的操作delete ps;
delete pi;
delete pci;
還有乙個問題就是型別轉換:在賦值操作當中,因為不可能更改做運算元物件的型別,因此左運算元的型別佔主導地位。如果賦值操作的左右型別不相同,則右運算元會被轉換為左邊的型別。
強制型別轉換:1.命名的強制轉換:轉換符號的一般形式如下:
cast-name(expression);
cast-name為:static_cast,dynamic_cast、const_cast、reinterpret_cast之一,type為轉換的目標型別,而expression則是被強制轉換的值。
1.dynamic_cast
支援執行時識別指標或引用所指向的物件。
2.const_cast
將轉換掉表示式的const性質。
3.static_cast
編譯器**執行的任何型別轉換都可以由static_cast顯示完成:
double d=97.00;
char ch=static_cast(d);
當需要將乙個較大的算術型別賦值給較小的型別的時候,使用強制型別轉換非常有用。
void*p=&d;
double *dp=static_cast(p);
4.reinterpret_cast
通常為運算元的位模式提供較低層次的重新解釋。
這章呢主要是介紹了c++中的操作符的使用情況,有算術運算子,關係運算子和邏輯運算子以及位操作符等等,這章最重要的是要知道運算子的優先順序的問題:從上到下,優先順序依次遞減:(熟悉下面的**)
++ 後自增操作 lvalue++
-- 後自減操作 lvalue--
typeid 型別id typeid(type)
typeid 執行時型別id typeid(expr)
顯示強制型別轉換 型別轉換 cast_name(expr)
sizeof 物件大小
C primer 第五章 表示式
1 和 均是 2和除以2.2 為什麼建議多使用前自增?因為前置操作需要做的工作更少,只需要加1返回結果就行。而後置操作則需要先儲存運算元原來的值,以便返回未加1之前的操作結果。對於int型物件和指標,編譯器可以優化掉這項額外工作。但是對於更多的複雜迭代器型別,這種額外的工作可能花費更大的代價。3 s...
第五章正規表示式
使用正規表示式 import re s 100 north main road re.sub road rd.s 100 north broad rd.1 在python中,正規表示式功能包含在re module中 2 re.sub 方法可以做字串替換,正規表示式 要替換的字串,原始字串 searc...
C primer第五章學習 表示式
c 還提供了另外兩種指標轉換 指向任意資料型別的指標都可轉換為 void 型別 整型數值常量 0 可轉換為任意指標型別。顯式轉換也稱為強制型別轉換 cast 包括以下列名字命名的強制型別轉換操 作符 static cast dynamic cast const cast和 reinterpret c...