關於void和循環語句

關於void:

1. void的字面意思爲“空類型”,主要用於:對函數返回值的限定和對函數參數的限定;
2. 衆所周知,如果指針p1和p2的類型相同,那麼可以直接在p1和p2間相互賦值;如果p1和p2類型不同,則必須使用強制類型轉換把賦值運算符右邊的指針類型轉化成左邊的指針類型,如:
float *p1;
int *p2;
p1 = p2;
編譯出錯,必須這樣使用:p1 = (float *)p2;
而void *則不同,任何類型的指針都可以直接賦值給它,無需強制類型轉換:
void *p1;
float *p2;
p1 = p2;
需要注意的是p2 = p1是不可以的,意味着空指針類型不能賦值給一個特定的指明的指針變量。
有了以上的瞭解,我們可以知道爲什麼內存有關的函數的參數和返回值都是void *;這樣可以增加內存操作函數的靈活性。
3. 省略返回值類型的函數,C語言中默認返回值爲int。
4. 函數參數爲void表示函數不接受任何參數,如果沒有void:
fun();
{
    return 1;
}
在C語言中調用這個函數fun(2)時,編譯器並不出錯,並返回函數值1;但是在C++中就會出錯,從而我們如果定義的函數沒有參數傳遞,一定要養成一個良好的習慣,在函數後面的括號內加上void關鍵字。
5. void不能表示一個真實的變量,例如:void a; fun(void a);都是錯誤的;void的出現只是爲了一種抽象的需要,如果你能正確理解
面向對象中“抽象基類”的概念,也很容易理解void數據類型,正如我們不能給抽象基類定義一個實例一樣,我們也不能定義一個void
變量。

 

關於循環語句中的關鍵字需要注意的幾個地方:

1. break表示終止“本層”循環;continue表示終止“本次”或者“本輪”循環。
2. switch case語句中不能使用continue關鍵字,因爲continue只能用在循環語句中,否則編譯不過,除switch包含在循環語句中。
3. 在多重循環中,如果有可能,應當把最長的循環放在最內層,把最短的循環放在最外層,這樣可以減少CPU跨切循環層數的次數。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章