Скачать MetaTrader 5

Данные через указатели

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Sergey
389
Sergey  

Доброго времени суток.

Подскажите кто знает как передавать данные для функции через указатели.

Пример

void f1 (int* v0, double* v1) 

{

..........

.............

Заранее благодарю. 

Rashid Umarov
Админ
13426
Rashid Umarov  

Только по ссылке (Формальные параметры).

Параметры простых типов передаются по значению, то есть изменения соответствующей локальной переменной такого типа внутри вызываемой функции никак не отразится в вызывающей функции. Массивы любых типов и данные типа структур всегда передаются по ссылке. Если необходимо запретить изменение массива или содержимого структуры, параметры этих типов должны быть объявлены с ключевым словом const.

Существует возможность передавать по ссылке и параметры простых типов. В этом случае модификация таких параметров отразится на соответствующих переменных в вызываемой функции, переданных по ссылке. Для того чтобы указать, что параметр передается по ссылке, после типа данных необходимо поставить модификатор &.

Смотрите кроме того Когда нужно использовать указатели в MQL5

Sergey
389
Sergey  
Rosh:

Только по ссылке (Формальные параметры).

Смотрите кроме того Когда нужно использовать указатели в MQL5

Спасибо за совет, вроде получилось. Такой способ мне кажется самым удобным, когда функция должна возвращать более одного, значения.

Но синтаксис какой то мне кажется не совсем удачный, отправляем в функцию значение переменной pTest(ii), а в итоге оказывается что оно изменилось. Почему нельзя было сделать как в си++, когда в функцию отправляется именно указатель.

 

void pTest(int& i){ i++;}

//--

int OnInit()
  {

   int ii=1; pTest(ii); Print("ii=",ii);


   return(0);
  }

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий