C語言指針一般錯誤解釋

1.char *sptr="abc",*tptr;

*tptr=sptr;

編譯時錯誤。因爲*tptr是一個字符,而sptr是一個指向字符的指針,代碼試圖將一個字符指針賦給一個字符,會產生類型衝突。

2.char *sptr="abc",*tptr;

tptr=sptr;

 沒有錯誤。因爲tptr和sptr都字符型指針。

3.char *sptr="abc",*tptr;

*tptr=*sptr;

可能產生運行時的錯誤。因爲程度並沒有爲tptr分配存儲空間。當解用tptr時,無法確定它的指向。

4.int *iptr=(int *)10;

*iptr=11;

可能會產生一個運行時的錯誤。因爲將一個固定的地址賦給一個整型指針是很危險的。當解用iptr時,我們會把寫到地址爲10的*iptr中,這種操作很可能不合法。

5.int *iptr=10;

*iptr=11;

可能產生運行錯誤和警告。因爲此代碼 嘗試將一個整數賦給一個整型指針,很多時候這種操作並不合法或者會造成類型衝突。

6.

int *iptr=(int *)10;

iptr=NULL;

沒有錯誤。因爲雖然程序一開始做了一個將固定地址賦給整數型指針iptr的危險操作,但他立刻將此指針設置爲NULL,這是正確的操作。

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