char*const p;charconst*p; const char*p三者的区别
时间: 2023-09-19 20:08:56 浏览: 74
三者的区别在于指针指向的内容是否可以被修改。
1. "char* const p;" 中,p是一个常量指针,它指向一个可修改的字符数组,即指向的内容可以改变,但指针本身不能被修改。
2. "char const *p;" 中,p是一个指针,它指向一个常量字符数组,即指向的内容不能被修改。
3. "const char *p;" 中,p也是一个指针,指向一个常量字符数组,即指向的内容不能被修改。这两种方式定义指针可以互换,没有区别。
相关问题
const char *p;char const*p;char*const p; const char* const p;四个修饰指针有什么区别?
这四个修饰指针的区别在于它们修饰的部分不同,具体如下:
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三者的区别
这三个声明中都包含了 `const` 关键字,表示所指向的内存区域是只读的,不能修改。但是它们的语法不同,有如下区别:
1. `char *const p`:`p` 是一个指向字符类型的常量指针,即指针本身是常量,指向的内容可以修改。
2. `char const *p`:`p` 是一个指向字符类型的指针,指向的内容是常量,不能修改。
3. `const char *p`:与 `char const *p` 相同,`p` 是一个指向字符类型的指针,指向的内容是常量,不能修改。
需要注意的是,`const` 关键字可以放在类型名的任意位置,其效果是一样的。
阅读全文