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,這是正確的操作。