在C/C++中,
const char 和
char 主要的区别在于
const 关键字的作用,它决定了变量是否可以被修改。
1. char
普通的
char 变量可以被修改,例如:
- char a = 'A';
- a = 'B'; // 允许修改
复制代码
2. const char
const char 表示该字符变量是常量,不能被修改:
- const char b = 'C';
- b = 'D'; // 错误,不能修改
复制代码
3. const char* 与 char* 的区别
- const char* ptr:指向的内容不可变,但指针本身可以指向其他地址。
- const char* ptr = "Hello";
- ptr = "World"; // 允许
- ptr[0] = 'h'; // 错误,不能修改内容
复制代码
- char* ptr:指向的内容可以修改,但通常不能指向字符串常量(因为字符串常量存储在只读区)。
- char str[] = "Hello";
- char* ptr = str;
- ptr[0] = 'h'; // 允许
复制代码
- char* const ptr:指针本身不可变,但指向的内容可以修改。
- char str[] = "Hello";
- char* const ptr = str;
- ptr[0] = 'h'; // 允许
- ptr = "World"; // 错误,指针不可变
复制代码
- const char* const ptr:指针本身和指向的内容都不可变。
- const char* const ptr = "Hello";
- ptr = "World"; // 错误
- ptr[0] = 'h'; // 错误
复制代码
总结
-
char 变量可以修改,而
const char 不能修改。
-
const char* 保护指向的内容,而
char* const 保护指针本身。
-
const char* const 既保护指针本身,也保护指向的内容。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。