《C专家编程》中,关于const char** 和 char** 能否相容的解释很有意思。
描述的意思大概是根据ANSI C标准,const char** 和 char** 类型并不相容。
在ANnSI C标准中,规定:
6.3.2.2 每个实参都应该具有自己的类型,这样它的值就可以赋值给与它对应的形参类型的对象(该对象的类型不能含有限定符)
6.3.16.1 要使上述的赋值形式合法,必须满足下列条件之一:两个操作数都是指向有限定符或无限定符的相容类型的指针,左边指针所指向的类型必须具有右边指针所指向类型的全部限定符。
即下列形式合法
char *cp;
const char *ccp;
ccp=cp;
cp=ccp;//结果产生编译警告
本文详细解读了《C专家编程》中关于constchar**和char**类型相容性的讨论,遵循ANSIC标准,深入探讨了类型赋值的合法性和编译警告的产生原因。
539

被折叠的 条评论
为什么被折叠?



