const char *p;char const*p;char*const p; const char* const p;四个修饰指针有什么区别?
时间: 2023-09-19 13:07:55 浏览: 45
这四个修饰指针的区别在于它们修饰的部分不同,具体如下:
1. const char *p:这个修饰指针表示指针p所指向的内存中的数据是常量数据,指针p本身可以变化。
2. char const *p:这个修饰指针和上一个修饰指针一样,表示指针p所指向的内存中的数据是常量数据,指针p本身可以变化。只是这里的语法上有些不同,建议使用第一个。
3. char* const p:这个修饰指针表示指针p本身是常量,指针所指向的内存中的数据可以变化。
4. const char* const p:这个修饰指针表示指针p本身和指针p所指向的内存中的数据都是常量,都不能变化。
希望这个解答能够帮到您!
相关问题
char * const p char const * p const char *p 上述三个有什么区别
这三个定义都是指向字符的指针,但它们之间有一些微妙的区别:
1. char * const p:这个定义中,const修饰的是指针p,表示p是一个常量指针,即指针p的值不能被修改,但是指针所指向的字符可以被修改。
2. char const * p:这个定义中,const修饰的是字符,表示字符是一个常量,即字符的值不能被修改,但是指针p的值可以被修改,也就是说指针p可以指向其他的字符。
3. const char * p:这个定义中,const修饰的也是字符,表示字符是一个常量,即字符的值不能被修改,同时指针p也是一个常量指针,即指针p的值不能被修改,也就是说指针p不能指向其他的字符。
总之,这三个定义中const的位置不同,所修饰的对象也不同,因此它们之间的区别也不同。需要根据具体的情况来选择使用哪种定义。
const char *p , char const *p 和 char *const p有什么区别
const char *p, char const *p和char *const p有以下区别:
1. const char *p和char const *p是一样的,它们都是指向常量字符的指针。这意味着指针p指向的字符是不可修改的,但指针本身是可变的,可以指向其他常量字符。也就是说,我们不能通过指针p来修改它所指向的字符的值,但可以通过p来改变它指向的位置。
2. char *const p是一个常量指针,它指向的字符是可变的,但指针本身是不可变的。这意味着指针p不能指向其他位置,但可以通过指针p来修改所指向字符的值。
3. const char *const p是一个既指向常量字符又是一个常量指针。它指向的字符是不可修改的,同时指针本身也是不可变的,不能指向其他位置。
总结来说,const char *p和char const *p都是指向常量字符的指针,但指针本身是可变的;而char *const p是一个常量指针,指向的字符是可变的;const char *const p既指向常量字符又是一个常量指针。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)