2014-12-07 72 views
1

這個例子是從MQL4但沒有真正的問題:這個例子中的按位運算符&做什麼?

int OnCalculate(const int  rates_total, 
       const int  prev_calculated, 
       const datetime &time[], 
       const double &open[], 
       const double &high[], 
       const double &low[], 
       const double &close[], 
       const long  &tick_volume[], 
       const long  &volume[], 
       const int  &spread[] 
       ) 

什麼事情確實是我不明白什麼是位運算符&在這裏告訴我。

我知道會發生什麼,如果你有2個變量,並使用它var1 && var2但在這種情況下與數組,可有人幫我在這裏?

+1

這不是位運算符和,它的[地址運算符(http://www.cplusplus.com/doc/tutorial/pointers /) – Christian 2014-12-07 21:28:38

回答

1

參數中的&表示pass-by reference而不是按位和。通過引用傳遞而不是傳遞值意味着參數值不被複制,而是被複制並傳遞給函數的數據結構的地址。

編輯:看@ Sneftel的評論如下有關傳遞引用

+2

Nitpick:'&'在技術上並不表示傳遞引用(語言中沒有這種東西),但是傳遞的變量*是引用*。差異可以看出,函數內部的變量類型被視爲引用類型,而不是非引用類型。 – Sneftel 2014-12-07 21:37:49

+0

@Sneftel好,我會編輯答案並指出您的評論。 – Christian 2014-12-07 21:46:56