c語言沒有提供邏輯型資料,關係表示式的值分別用數值1和0代替。
c++增加了邏輯型資料。邏輯常量只有兩個,即false和true。占用乙個位元組大小
邏輯型變數要用型別識別符號bool來定義,它的值只能是true和false之一。(因為邏輯變數由bool來定義,因此也成為布林變數)
else總是與它上面最近的、且未配對的if配對。
如果if與else的數目不一樣,為實現程式設計者的意圖,可以加花括號來確定配對關係。
break語句只能用於迴圈語句和switch語句內,不能單獨使用或用於其他語句中。
呼叫函式時需要一定的時間和空間的開銷,c++提供了一種高效的方法,即在編譯時將所呼叫函式的**直接嵌入到主調函式中,而不是將流程轉出去。這種嵌入到主調函式中的函式稱為內建函式。
可以在宣告函式和定義函式同時使用inline,也可以在其中一處使用inline,效果相同。
對函式作inline宣告,只是程式設計者對編譯系統提出的乙個建議,並不是指令性的。
c++提供預設引數的引數:
如果定義在呼叫之前,在函式定義中給出預設值,如果定義在呼叫之後,在宣告中給出預設值,定義可以不給出預設值
函式過載與預設引數結合時,不能出現二義性
c++允許用同一函式名定義多個函式,這些函式的引數個數和引數型別不同。這就是函式的過載。
函式過載要求:函式的引數型別 個數 順序 至少有乙個不同。
函式型別、函式指標型別、函式指標變數:
typedef void (p)(int,int);
定義乙個函式型別
p *p1; 定義乙個函式指標變數
typdef void (*p)(int,int);
定義乙個函式指標型別
void (*f2)(int,int); 定義乙個函式指標變數
#include using namespace std;
void test(int a, int b)
int main()
陣列型別、指標陣列型別、陣列指標變數:
c++提供函式模板,所謂函式模板,實際上是建立乙個通用函式,其函式型別不具體指定,用乙個虛擬的型別來代表。
定義函式模板的一般形式為:template或 template
函式模板只適用於函式的引數個數相同而型別不同,且函式體相同的情況。
對於有預設引數的函式,因為實參與形參的結合是從左至右順序進行的。因此指定預設值的引數必須放在形參表列的最右端。
如果函式的定義在呼叫之前,應在函式定義中給出預設值,如果定義在呼叫之後,應該宣告中給出預設值。
乙個函式不能既作為過載函式,又作為有預設引數的函式。
c++提供了運算子new和delete來取代malloc和free函式。
new和delete是運算子,因此執行效率高。
new運算子使用的一般格式為:
new 型別 [初值]
用new分配陣列空間時不能指定初值。
delete運算子使用的一般格式為:
delete 指標變數 //表示對陣列空間的刪除
C 物件導向 面向過程(一)
例如 把大象塞進冰箱裡 1 開啟冰箱門 2 把大象塞進去 3 關閉冰箱門 例一 孫權 瘦小 矮 屌絲 1 孫權踩著板凳開啟冰箱門 2 孫權找人把大象塞進冰箱 3 孫權踩著板凳關閉冰箱門 例二 呂布 高大 高 帥 1 呂布自己開啟冰箱門 2 呂布自己把大塞進冰箱 3 自己關閉冰箱門 用物件導向思想來做...
C與C ,面向過程與物件導向
注 個人理解 對比區別 c語言程式制定具體流程,按流程逐步進行。c 程式將過程結構化,需要使用時利用介面訪問與呼叫不同功能的類結構結構。pragma once namespace myelevator int direction 方向 int now floor 當前樓層 int targer fl...
物件導向的c 和面向過程的c
以前學c的時候,老師就說c是面向過程 procedural 的語言,c 是物件導向 object oriental 的語言。至於 面向過程 是什麼意思,而 物件導向 又該怎樣理解,一直沒講的很通透。也就那樣罷了。現在想認真地學一下c 所以一定要把這個問題弄清楚,不然心裡糾結便學不下去了。那麼究竟 面...