国产激情久久久久影院小草_国产91高跟丝袜_99精品视频99_三级真人片在线观看

怎樣在程序里獲得一個(gè)空指針

時(shí)間:2020-11-21 14:17:27 筆試題目 我要投稿

怎樣在程序里獲得一個(gè)空指針

  根據(jù)語言定義, 在指針上下文中的常數(shù)0 會(huì)在編譯時(shí)轉(zhuǎn)換為空指針。也就是說, 在初始化、賦值或比較的時(shí)候, 如果一邊是指針類型的值或表達(dá)式, 編譯器可以確定另一邊的常數(shù)0 為空指針并生成正確的空指針值。因此下邊的代碼段完全合法:

  char *p = 0;

  if(p != 0)

  然而, 傳入函數(shù)的參數(shù)不一定被當(dāng)作指針環(huán)境, 因而編譯器可能不能識別未加修飾的0 “表示” 指針。在函數(shù)調(diào)用的`上下文中生成空指針需要明確的類型轉(zhuǎn)換,強(qiáng)制把0 看作指針。例如, Unix 系統(tǒng)調(diào)用execl 接受變長的以空指針結(jié)束的字符指針參數(shù)。它應(yīng)該如下正確調(diào)用:

  execl(“/bin/sh”, “sh”, “-c”, “date”, (char *)0);

  如果省略最后一個(gè)參數(shù)的(char *) 轉(zhuǎn)換, 則編譯器無從知道這是一個(gè)空指針,從而當(dāng)作一個(gè)0 傳入。(注意很多Unix 手冊在這個(gè)例子上都弄錯(cuò)了。

  如果范圍內(nèi)有函數(shù)原型, 則參數(shù)傳遞變?yōu)?ldquo;賦值上下文”, 從而可以安全省略多數(shù)類型轉(zhuǎn)換, 因?yàn)樵透嬷幾g器需要指針, 使之把未加修飾的0 正確轉(zhuǎn)換為適當(dāng)?shù)闹羔槨?/p>

怎樣在程序里獲得一個(gè)空指針

  函數(shù)原型不能為變長參數(shù)列表中的可變參數(shù)提供類型。在函數(shù)調(diào)用時(shí)對所有的空指針進(jìn)行類型轉(zhuǎn)換可能是預(yù)防可變參數(shù)和無原型函數(shù)出問題的最安全的辦法。

【怎樣在程序里獲得一個(gè)空指針】相關(guān)文章:

怎樣獲得Sun Java認(rèn)證10-01

常用面試題目空指針到底是什么12-13

怎樣獲得澳洲留學(xué)的學(xué)分07-29

怎樣用英語要求獲得某物08-18

怎樣存款才能獲得更多利息08-18

中級經(jīng)濟(jì)師職稱怎樣獲得08-27

在C語言中什么是指針和數(shù)組等價(jià)11-24

怎樣煎煮中藥才能獲得好的療效08-17

英國留學(xué)生應(yīng)該怎樣獲得CAS10-11