Хорошо, все объяснили привязку параметров.
Но никто не упомянул, что это значит.
int data[1,2,3,4,5];
int* pointer = data;
std::cout << *pointer++ << std::endl;
std::cout << *pointer << std::endl;
Как уже упоминалось, оператор ++ имеет более высокий приоритет и, таким образом, связывается сильнее, чем *оператор.Таким образом, выражения также эквивалентны:
std::cout << *(pointer++) << std::endl;
std::cout << *pointer << std::endl;
Но оператор ++ - это постфиксная версия.Это означает, что указатель увеличивается, но результат операции возвращает исходное значение для использования оператором *.Таким образом, мы можем изменить оператор следующим образом:
std::cout << *pointer << std::endl;
pointer++;
std::cout << *pointer << std::endl;
Таким образом, результатом вывода будет целое число, на которое в данный момент указывает, но указатель также увеличивается.Таким образом, напечатанное значение равно
1
2
, а не
2
3