char*
是 C 和 C++ 中用于表示字符指针的类型。它通常用于指向单个字符或字符数组(即字符串)。理解 char*
的使用和操作对于编写高效、安全的 C/C++ 程序非常重要。以下是关于 char*
的详细说明,包括其常见用法、注意事项以及如何避免常见的陷阱。
1. 基本概念
-
char*
:这是一个指向char
类型的指针。它可以指向单个字符,也可以指向一个以空字符\0
结尾的字符数组(即 C 风格的字符串)。 -
const char*
:这是一个指向const char
的指针,意味着指针所指向的字符不能被修改。常用于表示不可变的字符串。 -
char* const
:这是一个常量指针,意味着指针本身不能被修改,但指针所指向的内容可以修改。
2. 常见用法
2.1 指向单个字符
char c = 'A';
char* p = &c; // p 指向字符 'A'
std::cout << *p << std::endl; // 输出 'A'
在这个例子中,p
是一个指向字符 c
的指针,*p
表示解引用指针,获取指针所指向的值。
2.2 指向 C 风格的字符串
C 风格的字符串是以空字符 \0
结尾的字符数组。char*
可以用来指向这样的字符串。
char str[] = "Hello, World!";
char* p = str; // p 指向字符串 "Hello, World!"
std::cout << p << std::endl; // 输出