c++ 還提供了另外兩種指標轉換:指向任意資料型別的指標都可轉換為
void* 型別;整型數值常量 0 可轉換為任意指標型別。
顯式轉換也稱為強制型別轉換(cast),包括以下列名字命名的強制型別轉換操
作符:static_cast、dynamic_cast、const_cast和 reinterpret_cast。
因為要覆蓋通常的標準轉換,所以需顯式使用強制型別轉換。
ival *= static_cast
(dval); // converts dval to int
顯式使用強制型別轉換的另乙個原因是:可能存在多種轉換時,需要選擇一
種特定的型別轉換。
函式不能返回另乙個函式或者內建陣列型別,但可以返回指向函式的指標,或指
向陣列元素的指標的指標
儘管函式的形參是 const,但是編譯器卻將 fcn 的定義視
為其形參被宣告為普通的 int 型:
void fcn(const int i)
void fcn(int i) // error: redefines fcn(int)
這種用法是為了支援對 c 語言的相容,因為在 c 語言中,具有 const 形
參或非 const 形參的函式並無區別。
三種定義是等價的,形參型別都是 int*
// three equivalent definitions of printvalues
void printvalues(int*)
void printvalues(int)
void printvalues(int[10])
C primer 第五章 表示式
1 和 均是 2和除以2.2 為什麼建議多使用前自增?因為前置操作需要做的工作更少,只需要加1返回結果就行。而後置操作則需要先儲存運算元原來的值,以便返回未加1之前的操作結果。對於int型物件和指標,編譯器可以優化掉這項額外工作。但是對於更多的複雜迭代器型別,這種額外的工作可能花費更大的代價。3 s...
C Primer筆記4(第五章 表示式)
1 高優先順序的操作符要比低優先順序的結合得更緊密。2 某些算術表示式的求解結果未定義,其中一部分由數學特性引起,例如除零操作 其他則歸咎於計算機特性。個人理解,計算機特性是指計算機的位 32位 64位 3 在解除法 和求模 時,如果兩個運算元中只有乙個運算元為負數,這兩種操作的結果取決於機器 求模...
第五章 表示式
表示式這章比較簡單,一般有過c的基礎的人都應該問題不大,要知道連我都覺得比較簡單,相信你們肯定更加容易了。new和delete表示式 動態建立和釋放陣列,定義變數時,必須指定其資料型別和名字。然而動態建立物件時,只需要指定其資料型別,而不必為該物件命名。取而代之的是,new表示式返回值指向新建立物件...