C语言笔记之char*
、const char*
和 char[]
辨析
code review!
参考笔记
1.C语言笔记之char*
、const char*
和 char[]
辨析
2.C++笔记之int、size_t、uint8_t、unsigned char*区别
3.C++之char和string字符串类探究
4.C++笔记之字节数组的处理
5.C++笔记之如何给 const char*
类型变量赋值
在C语言中,char*
、const char*
和 char[]
都可以用来处理字符串或字符数据,但它们在用途、特性、可修改性和内存分配上有显著的区别。以下是详细的辨析。
文章目录
- C语言笔记之`char*`、`const char*` 和 `char[]`辨析
- 1. 定义与本质区别
-
- `char*`
- `const char*`
- `char[]`
- 2. 内存分配方式
-
- 示例对比
-
- `char*` 和 `const char*` 的内存分配
- `char[]` 的内存分配
- 3. 可修改性
-
- 示例细节
-
- `char*` 可修改性
- `const char*` 可修改性
- `char[]` 可修改性
- `char*` 指向数组
- `const char[]` 的不可修改性
- 4. `sizeof` 和内存大小
-
- `sizeof` 的行为
-
- 示例
- 5. 使用场景
- 6. 示例代码对比
-
- 动态分配字符串(`char*`)
- 使用只读字符串(`const char*`)
- 固定大小字符串(`char[]`)
- 7. 总结