Я гуглил и нашел следующий синтаксис для указателей
void main()
{
char a[10]="helloworld";
char *p=a;
printf("%c",p[0]);
}
Я не знал, что указатели могут быть доступны и в виде массива. Я использовал * для операций с указателями
Я использовал [0] для массивов и * p для операций с указателями, поэтому я не знал других двух вещей.
Теперь из вышесказанного мы можем получить доступ ко второму элементу массива любым из следующих способов
printf("%C",a[1]); \\ this is the array
printf("%c",*(a+1)); \\ this is the array using *
printf("%c", p[1]); \\ using the pointer
printf("%C",*(p+1)); \\ using the pointer
Теперь мне интересно: какая операция быстрее? Я читал, что операции с использованием указателей выполняются быстрее, и именно поэтому C остается на вершине для быстрого выполнения, и что ни один другой язык не может сравниться с его быстротой.
Теперь главный вопрос: что ускоряет операции с указателями?
1) * (p + 0) * (значение по адресу), которое делает трюк или
2) p [0]
так как мы используем
*(a+1) or *(p+1) both are same
a[1] or p[1] both are same
когда обычный массив можно использовать как * (a + 1) (который использует * значение по адресу) как указатель. почему мы используем указатели для более быстрой работы? Когда оба имеют одинаковый синтаксис, когда обычный массив и указатель используют * в этих синтаксисах, почему указатели быстрее?
Но, ребята, пожалуйста, скажите мне тогда, почему мы используем указатели? Мой профессор сказал мне, что указатели быстрее, потому что они указывают на адрес, а переменную следует искать в этом месте.