c#中的Char指针等价
Char pointer equivalent in c#
我正在将c++代码转换为c#, c++中的char需要8位,而c#需要16位。我不知道char*,所以
在C#
中char *
的等价物是什么,我用byte[]
还是[MarshalAs(UnmanagedType.LPStr)] StringBuilder
,并告诉我C++
到C#
的char
的等价物是byte
还是string
?
对于输入参数,它可以是string
或byte[]
,这取决于参数的含义。如果它表示一个字符序列,则使用string
。如果参数是一个任意数据的缓冲区,那么它很可能是一个byte[]
。
然而,在C/c++中,char *
也可以作为输出参数,例如sprintf
函数。在这种情况下,StringBuilder
或byte[]
将是等效类型,这又取决于形参的含义。
关于c#中的char
数据类型,请记住,c#中的char
表示字符,而C/c++的含义更接近于c#中的byte
。
不能正确理解问题,但c#也有Char类型http://www.dotnetperls.com/char
这取决于:
-
char *ptr
应替换为string
,如果它作为一个字符串 - 如果重要的是其中的值并在
[-127,128]
之间绑定其范围,则使用char[]
或byte[]
,例如char[] array1 = { 'b', 'c', 'a' };
相关文章:
- 初始化或分配空字符串文字到指向 C 中的 char 的指针或指向 C++ 中 const char 的指针的原因是什么
- 使用指针初始化 char 数组或字符串 C++
- 为什么将指针重新分配给 1D 数组的 char 时显示错误,但 2D 数组工作正常?
- 构造函数 (C++) 中的 char 指针参数存在问题
- 将 char 指针传递给接受对 char 数组的引用的函数
- 分配值时,C++ char* 指针上的前递增与后递增
- 使用 map<char,strring> 的迭代器返回指针 map<char,strring>*
- char* 除了作为C++中的指针之外,还有其他功能吗?
- 为什么当我尝试将char输入到int时,文件指针会卡住
- char指针或char变量的默认值是多少
- char p[0]表示自动分配的缓冲区还是安全指针
- 为什么为char指针分配内存不会截断char序列
- 通过指针使用C++还原char数组时出现问题
- 愚蠢的问题:strcat和char指针
- C++17:unique_ptr<char[]> 和 shared_ptr<char[] 之间的指针存储差异>
- 为什么要使用引用来获取 *char?当我们使用指针时,不使用引用不是更好吗?
- 如何将 std::string 赋回作为 <char>void* 指针传递的 std::vector.data()?
- 家庭工作:将一个文件读取到指向指针char(char**)的指针中
- 从Cocos2dx的指针char向量写入sqlite文件
- 将char复制到struct指针char