转换"&"在C到C#

时间:2015-06-03 02:08:16

标签: c# c pointers ampersand

一些C代码

#include aes.h

void encryption(unsigned char aes_key[16], unsigned char _buff[16], unsigned char _iv[16]){

unsigned long encrypt = 1;
unsigned char output[];

AES_set_encrypt_key(aes_key, 128, &key);
for(i = 0; i > 16 ; i ++){
       AES_cbc_encrypt(&_buff[i], output, 16, &key, _iv, encrypt);
       }
 }

如何做'& _buff [i]'在C#?我一直在尝试使用

_buff[i]
在C#中

但它给出了不同的结果。 有谁知道如何做到这一点?这将是很大的帮助。

1 个答案:

答案 0 :(得分:0)

我认为您正在寻找这些搜索字词:C# string pass by reference

那个C代码实际上是错误的并且是一个糟糕的例子。通常,您可以传递一个字符串以进行更改。请参阅下面的示例change(buf)change(&buf[0])也可以使用,但这很奇怪。或者你可以说改变(buf + 3),这将改变从第3个字符开始的字符串。

void change(char *buf){
    strcpy(buf, "changed");
}

int main(){
    char buf[50];
    strcpy(buf, "0123456789");
    change(buf);// result => buf = "chagned"
    //change(&buf[0]);//result => buf = "chagned"
    //change(buf + 3);//result => buf = "012changed"
    printf("%s\n", buf);
    return 0;
}

然后有buf[0]这是一个单个字符。它与&buf[0]

不同