どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 1072

 
こんにちは、5コペックの質問です)))関数に渡すときの「&」記号の意味について教えてください。例:int determineSection_D1(int& askSection_D1,int & bidSection_D1) ?ありがとうございます。
 
rabanik:    よかった ...一銭にもならないのに ......どういうこと?関数に渡す ときは"&"?

画像を左クリックで拡大、右クリックで保存

MetaEditorは、MQL-4言語に対するヘルプを備えています。ヘルプを全部読むか、少なくとも一通り目を通すことに意味がある

 

こんにちは。

画面上にボタンを作り、そこにOffline Chartのオープニングを付けたいのですが、どうすればいいですか?目的のOffline Chartへのパスを指定するには、どのような関数を使用すればよいですか?

 
こんにちは。チャートが10秒ごとに自動的に更新 され、毎回「更新」ボタンを押す必要がないようにするには、どうしたらよいでしょうか。
 
zert: 図の更新
voidOnTimer() // オンタイマー WindowRedraw(); // ウィンドウの再描画
 
LRA:
voidOnTimer() // オンタイマー WindowRedraw(); // ウィンドウの再描画
どこをどう書けばいいのかわからないのですが、スクリーンショットで見せてもらえますか?
 
zert:   書き方
を使用しているEAに挿入してください。ないのであれば、書く必要があります。なぜ新しい ニックネームなのか?
 
LRA:

画像を左クリックで拡大、右クリックで保存

MetaEditorは、MQL-4言語用のヘルプを備えています。全部読むか、少なくとも目を通すことに意味がある

返信ありがとうございました。最後まで理解できない。例えば、SendOrder(int &Ticket, int Type ,double LT ,double OP=-1 ,int ModeSL=0)関数にパラメータを持たせています。さらに、例えばコード内で何らかの条件でそれを参照しようとすると、「パラメータは参照、変数として渡されました」というエラーが発生します。

どうしたらいいのか、アドバイスをお願いします。ありがとうございます。

 
rabanik:    とすればerror "parameter passed as reference, variable".

パラメータがない場合&値で転送する場合、どちらが信頼性が高いか。実際のパラメータはコピーされ、そのコピーが関数に渡されます。関数内部のパラメータに加えられた変更は、関数内部に残ります。関数呼び出しの場所での実際のパラメータは変更されません。また、定数や変数が渡されたとしても、関数にとっては関係ありません。なぜなら、どのような場合でも、関数に届くのはパラメータのコピーだけだからです。これは信頼性を高めるため、関数内の偶発的な変化から変数を保護するために行われます。

パラメータを参照渡し する場合は、&記号を指定し、参照先である変数のアドレスそのものを関数に渡すことを意味します。そして、この関数はこの変数を変更することができ、その変更はこの関数を呼び出した関数内の変数の値に影響を与えます。まあ、関数がパラメータの値を変更するためには、それが変数でなければならないので、翻訳者は次のように書いたのでしょう。

また疑問があれば、SendOrder(int &Ticket, int Type ,double LT ,double OP=-1 ,int ModeSL=0)関数が あるので、その関数がどのように呼ばれた かを書いた方が良いだろう。第1パラメータに数値を渡しているようですが、これは意味がありません。このパラメータでは、ブローカーのデータベースに登録されている注文番号を返そうとします。明らかにこれは変数であるべきです。迷ったら、機能を見てください。そして、関数は渡される数値を変更するためにTRUEである、それはその場所に変数を望んでいる。

 

例題から理解した方がわかりやすいのでは?

void OnStart()
{
 int a = 5;
 int b = 7;
 int c = f(a, b);
 Print("a = ", a, ": b = ", b": c = ", c);
}

int f(int k, int n)
{
 k += 2;
 return(k+n);
}

//результат a = 5: b = 7: с = 14

もう一つの選択肢

void OnStart()
{
 int a = 5;
 int b = 7;
 int c = f(a, b);
 Print("a = ", a, ": b = ", b": c = ", c);
}

int f(int &k, int n)
{
 k += 2;
 return(k+n);
}

//результат a = 7: b = 7: с = 14

これが違いです。