两个指针语句是否相同?
void reverse(const char * const sPtr){
}
Run Code Online (Sandbox Code Playgroud)
和
void reverse(const char const *sPtr){
}
Run Code Online (Sandbox Code Playgroud)
没有.
const char const *sPtr相当于
const char *sPtr.
const char *sPtrsay参数sPtr是指向a的指针const char.
const char * const sPtr是const指向a的指针const char.
请注意,这在C99和C11中是等效的:
(C99,6.7.3p4)"如果相同的限定符在同一个说明符限定符列表中出现多次,或者直接或通过一个或多个typedef出现,那么行为就像它只出现一次一样."
但在C89中const char const *sPtr不存在约束违规:
(C90,6.5.3)"相同的类型限定符不得在同一说明符列表或限定符列表中直接或通过一个或多个typedef出现多次."