const *char 和 const char* 定义变量的区别
时间: 2024-09-14 09:09:38 浏览: 95
C++ const修饰变量和修饰函数介绍
5星 · 资源好评率100%
在C和C++语言中,`const *char` 和 `const char*` 表示的是两种不同的声明方式,它们在语法和含义上有所区别:
1. `const *char`:这种方式的写法是不合法的,因为不能将 `const` 直接放在 `*` 前面。`const` 修饰符不能直接修饰指针变量名,而是应该放在指针类型或者指向的数据类型前面。
2. `const char*`:这是一种合法的声明方式。在这种声明中,`const` 修饰符用于指针所指向的数据,表示指针指向的数据是不可修改的。换句话说,你可以改变指针变量 `p` 的指向,但是不能通过 `p` 去修改它指向的内容。例如:
```c
const char* p = "Hello";
// p = "World"; // 合法,可以改变指针的指向
// *p = 'w'; // 错误,不能通过 p 修改字符串内容
```
3. `char const*`:这是另一种等价的写法,与 `const char*` 功能上完全相同。`const` 关键字放在 `char` 后面,表示数据不可变。
```c
char const* p = "Hello";
// p = "World"; // 合法,可以改变指针的指向
// *p = 'w'; // 错误,不能通过 p 修改字符串内容
```
在实际编程中,建议使用 `const char*` 或者 `char const*` 的形式来声明一个指向常量字符的指针,因为这样的写法更符合大多数人的阅读习惯。
阅读全文