#c# #pointers #unsafe
#c# #указатели #небезопасный
Вопрос:
long* array = stackalloc long[50];
1) array[10]
2) *(array 10)
Итак, должен ли я заменить вторую версию, потому что она быстрее, или они одинаковы, как только мы получили указатель?
Комментарии:
1. ну, если они будут разными, я думаю, мой вопрос можно изменить на «почему», тогда они разные. Хм, вы сказали, что они будут другими, теперь это ушло.
2. повторите «если» — я удалил предыдущий комментарий, в котором я ошибочно думал, что вы сравниваете производительность указателя с производительностью вектора — извините, если это добавило путаницы. Два показанных подхода к указателю должны быть практически идентичны.
3. хорошо, мои тесты не показали разницы, но я действительно отчаянно ищу прирост производительности, так что .. =)
4. это должно сработать чертовски быстро. Если это происходит недостаточно быстро , вам пришлось бы быть намного более конкретным в отношении того, что он делает с данными.
5. я делаю довольно сложные вещи 1894107877200 раз, так что все имеет значение..
Ответ №1:
Две записи в основном одинаковы, просто два способа записи. Конечно, # 1 лучше, потому что он выглядит лучше 🙂