char* 赋值 char[]
时间: 2024-10-09 20:03:59 浏览: 19
char、char*、char**数组的区别
5星 · 资源好评率100%
`char*` 和 `char[]` 在 C/C++ 中都用于表示字符数组,但是它们有不同的语法和用途。
`char*` 指向单个字符的指针,它存储的是内存地址,而不是实际的字符数据。当你将一个字符赋给 `char*` 时,实际上是把字符的地址赋值给指针。例如:
```c++
char* p = "Hello"; // p 存储的是 "Hello" 字符串首字符的地址
```
而 `char[]` 表示固定大小的一维字符数组,可以直接存储一组字符,例如:
```c++
char arr[] = "Hello"; // arr[0] 到 arr[5] 分别存储 'H', 'e', 'l', 'l', 'o', '\0'
```
两者之间的赋值操作通常是通过拷贝字符串字面量到数组来进行的。如果想让 `char*` 指向 `char[]` 的内容,需要动态分配内存或者使用函数如 `strcpy()` 来复制字符串:
```c++
char* p = new char[strlen(arr) + 1]; // 动态分配空间
strcpy(p, arr); // 把 arr 数组的内容复制到 p 指向的位置
```
阅读全文