c# - 将 C++ 转换为 C#

标签 c# c++

在 C++ 中:

byte des16[16];
....
byte *d = des16+8;

在 C# 中?

byte des16[16];
    [0] 207 'Ï' unsigned char
    [1] 216 'Ø' unsigned char
    [2] 108 'l' unsigned char
    [3] 93 ']'  unsigned char
    [4] 249 'ù' unsigned char
    [5] 249 'ù' unsigned char
    [6] 100 'd' unsigned char
    [7] 0   unsigned char
    [8] 76 'L'  unsigned char
    [9] 50 '2'  unsigned char
    [10]    104 'h' unsigned char
    [11]    118 'v' unsigned char
    [12]    104 'h' unsigned char
    [13]    191 '¿' unsigned char
    [14]    171 '«' unsigned char
    [15]    199 'Ç' unsigned char

after
 byte *d = des16+8;
d = "L2hvh¿«Ç†¿æ^ òÎL2hvh¿«Ç"

最佳答案

C#(一般来说)没有指针。也许以下是您所追求的:

byte[] des16 = new byte[16];
byte byteAtIndex8 = des16[8];

此代码为您提供索引 8 处的元素。

如果我没看错你的代码,你是在尝试获取索引 8 处元素的地址。一般来说,这在 C# 中是不可能的(除非你使用不安全的代码)。

关于c# - 将 C++ 转换为 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3433363/

相关文章:

c# - 如何对表单应用程序中的所有实例仅调用一次方法 DriveMe() 或 color() 以减少重复。 C#

c# - .ToList() 和 .Reverse() 等扩展方法在幕后如何看待?

使用L1 CPU Cache的c++算法的Python实现

c++ - 是否有可能在 C/C++ 中获得确定/绝对大小的类型?

c++ - 使用 QStyledItemDelegate::paint() 直接在 QListView 上绘制小部件

c++ - 删除目录中的所有文件

c# - 安排在特定时间运行方法。

c# - 用于返回可能并不总是完全填充的数据结构对象的设计模式?

C#重连NetworkStream时如何协调读写线程?

c++ - gdb - 列出当前函数的源而不输入其名称