char * const p char const * p const char *p 上述三个有什么区别
时间: 2023-12-23 12:02:33 浏览: 82
(const) char 转CString 详解(字符串类型转换详解,不断补充)
这三个定义都是指向字符的指针,但它们之间有一些微妙的区别:
1. char * const p:这个定义中,const修饰的是指针p,表示p是一个常量指针,即指针p的值不能被修改,但是指针所指向的字符可以被修改。
2. char const * p:这个定义中,const修饰的是字符,表示字符是一个常量,即字符的值不能被修改,但是指针p的值可以被修改,也就是说指针p可以指向其他的字符。
3. const char * p:这个定义中,const修饰的也是字符,表示字符是一个常量,即字符的值不能被修改,同时指针p也是一个常量指针,即指针p的值不能被修改,也就是说指针p不能指向其他的字符。
总之,这三个定义中const的位置不同,所修饰的对象也不同,因此它们之间的区别也不同。需要根据具体的情况来选择使用哪种定义。
阅读全文