Почему C++ и C# дают разные результаты [дубликат]C#

Место общения программистов C#
Ответить
Anonymous
 Почему C++ и C# дают разные результаты [дубликат]

Сообщение Anonymous »

Это невозможно, не так ли? Но оно есть.
Изображение

В чем тут разница, мне не понятно. Я не могу себе представить, что C# и C++ имеют разные приоритеты для основных операций. Я намеревался перенести большую часть своего старого кода с C++ на C# (небезопасно), но теперь оказался в замешательстве.
Код:
C++ Версия
static void func() {
uint8 ms[4] = { 44, 55, 66, 77 };
uint8 md[4] = { 0, 1, 2, 3 };

uint8* d = md;
*d++ = ms[*d];
*d++ = ms[*d];
*d++ = ms[*d];
*d++ = ms[*d];
}

Результат в MD:
md: 44,55,66,77

Версия C#
static void func() {
var ms = new byte[] { 44, 55, 66, 77 };
var md = new byte[] { 0, 1, 2, 3 };

fixed (byte* ud = md) {
byte* d = ud;

*d++ = ms[*d];
*d++ = ms[*d];
*d++ = ms[*d];
*d++ = ms[*d];
}
}

Результат в MD
md: 55,66,77,44


Подробнее здесь: https://stackoverflow.com/questions/788 ... nt-results
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»