珍愛我們的生命優(yōu)秀作文
根據(jù)語言定義, 在指針上下文中的常數(shù)0 會在編譯時轉換為空指針。也就是說, 在初始化、賦值或比較的時候, 如果一邊是指針類型的值或表達式, 編譯器可以確定另一邊的常數(shù)0 為空指針并生成正確的空指針值。因此下邊的代碼段完全合法:

char *p = 0;
if(p != 0)
然而, 傳入函數(shù)的參數(shù)不一定被當作指針環(huán)境, 因而編譯器可能不能識別未加修飾的0 “表示” 指針。在函數(shù)調用的上下文中生成空指針需要明確的類型轉換,強制把0 看作指針。例如, Unix 系統(tǒng)調用execl 接受變長的以空指針結束的字符指針參數(shù)。它應該如下正確調用:
execl(“/bin/sh”, “sh”, “-c”, “date”, (char *)0);
如果省略最后一個參數(shù)的(char *) 轉換, 則編譯器無從知道這是一個空指針,從而當作一個0 傳入。(注意很多Unix 手冊在這個例子上都弄錯了。
如果范圍內有函數(shù)原型, 則參數(shù)傳遞變?yōu)?ldquo;賦值上下文”, 從而可以安全省略多數(shù)類型轉換, 因為原型告知編譯器需要指針, 使之把未加修飾的0 正確轉換為適當?shù)闹羔槨?/p>
函數(shù)原型不能為變長參數(shù)列表中的可變參數(shù)提供類型。在函數(shù)調用時對所有的空指針進行類型轉換可能是預防可變參數(shù)和無原型函數(shù)出問題的最安全的辦法。
【珍愛我們的生命優(yōu)秀作文】相關文章:
讓我們珍愛生命吧作文03-20
珍愛生命優(yōu)秀作文11-29
珍愛生命的作文(優(yōu)秀)11-09
優(yōu)秀珍愛生命的作文12-16
[優(yōu)秀]珍愛生命的作文09-05
珍愛生命的作文優(yōu)秀09-28
珍愛生命作文【優(yōu)秀】07-09
珍愛生命作文(優(yōu)秀)07-10
珍愛生命之水作文[優(yōu)秀]07-25
【優(yōu)秀】珍愛生命作文09-26
- 相關推薦