PHP Code:
void adding_function(int* variable)  // функция добавляет 2 к переданной в неё переменной, изменяя при этом саму переменную
{
   *variable += 2;  // переменная предварительно разыменовывается, дабы изменялось её значение, а не значение указателя на неё
}
int main()
{
   int A = 8;
   adding_function(A);   // неправильный вызов функции - нужно передавать не значение переменной A, а её адрес.
   adding_function(&A);  // правильный вызов - передан адрес переменной A. После исполнения функции, A станет равно 10. 
} 
Что такое указатель вообще? Это переменная, которая хранит какой-то 
адрес в ОЗУ 
(как правило, адрес какой-то другой переменной). Соответственно, если указатель фигурирует среди параметров функции 
(как в случае с adding_function) - то эта функция требует себе именно 
адрес какой-то переменной, а не её значение. Поэтому я и пишу 
adding_function(&A), ведь знак амперсанда - это операция "взятия адреса переменной".
А внутри тела самой функции написано 
*variable += 2, то есть идёт "разыменование указателя" 
(то есть, "обращение к значению переменной, на которую указывает указатель").