char *const p;char const *p;const char *p三者的区别
时间: 2023-07-31 07:09:26 浏览: 57
这三个声明中都包含了 `const` 关键字,表示所指向的内存区域是只读的,不能修改。但是它们的语法不同,有如下区别:
1. `char *const p`:`p` 是一个指向字符类型的常量指针,即指针本身是常量,指向的内容可以修改。
2. `char const *p`:`p` 是一个指向字符类型的指针,指向的内容是常量,不能修改。
3. `const char *p`:与 `char const *p` 相同,`p` 是一个指向字符类型的指针,指向的内容是常量,不能修改。
需要注意的是,`const` 关键字可以放在类型名的任意位置,其效果是一样的。
相关问题
const char *p 和 char * const p 的区别
引用中的代码演示了使用const修饰char类型指针变量的情况。在这种情况下,指针指向的内容是不可修改的,但是指针的地址可以改变。例如,const char *p表示p指向的内容是不可修改的,但是可以通过改变指针的地址来让p指向不同的内容。
引用中的代码演示了同样的情况。const char *p和char * const p的区别在于const关键字的位置不同。const关键字位于char之前时,表示指针指向的内容不可修改;而const关键字位于char之后时,表示指针的地址不可修改。
综上所述,const char *p表示指针指向的内容不可修改,但指针的地址可以修改;而char * const p表示指针的地址不可修改,但指针指向的内容可以修改。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [const char *p,char const *p和char *const p区别](https://blog.csdn.net/weixin_42888638/article/details/127122854)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"]
- *3* [const char*p与char* const p的区别](https://blog.csdn.net/2202_75625589/article/details/128595272)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
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)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![cpp](https://img-home.csdnimg.cn/images/20210720083646.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_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)