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,这是正确的操作。