【发布时间】:2021-01-03 18:28:33
【问题描述】:
我使用 C# 已有好几年了,但从未在 C# 中使用过指针。我正在使用 String API,但我不知道为什么 char* 实际上是一个数组而不是单个字符。
API 定义:
[System.CLSCompliant(false)]
public String (char* value);
API 文档的 sn-p:
参数
价值 Char*
指向以空字符结尾的 Unicode 字符数组的指针。
声明char* singleChar 是指向单个字符的指针吗?指针文档example 似乎是这么说的。
那么,为什么/如何它也可以是指向数组的指针?为什么参数类型不是char[]*?
【问题讨论】:
-
指向数组的指针总是指向它的第一个元素的指针
-
在这种情况下,“数组”(实际上是一个连续内存区域)由空终止符(代码为 0 的字符)终止
-
更正确的描述是“指向以空字符结尾的 Unicode 字符序列的指针”,但经常使用术语数组,即使不正确...
fixed (char* pch = "Hello world") { string str2 = new String(pch + 5); }很少有人会说@例如987654327@是一个数组
标签: c# .net string pointers char