Выражение, sum - arr[n]
, которое возвращает значение, хранящееся в n-й позиции массива.
Здесь значение arr в n (здесь в позиции, где i
очков, так как это arr[i]
) вычитается со значением sum
.
Дано, скажем,
int arr[] = { 1, 5 , 8, -1, 5 }
и
int sum = 6
Затем, например, принять i
как 0 ...
arr[i]
представляется как arr[0]
, что означает указание напервый элемент (0) в массиве arr
.Здесь значение равно 1.
И, вычитая 1 из 6 , мы получаем 5 .
С другой стороны, sum - arr
равновычитание целого числа (int
) с указателем (int arr[]
внутри программы станет int * arr
), что на самом деле невозможно, поскольку супер-указатель больше, чем под-указатель ...
Однако вы можете сделать, sum - *arr
(что называется разыменованием).
Последние слова,
Просто чтобы уменьшить всю эту путаницу с использованием указателей и всего,просто используйте std::vector<type>
( Пример: std::vector<int> arr;
), что является распространенной практикой в C ++ и, более того, работает так же, как и они!( Вы все равно используете указатели в C! ).
Удачи!