ちょっと質問

long data[20][13];

というローカル変数があり、この変数を別の関数に渡す際の書式なんですが、

渡し先関数 void func( long * ); で

1: &data[0]
2: &data[0][0]
3: data

この3つの記述は、全て同じ意味になるって先輩がいっていたのですが、
本当ですか? 僕は2のように書けと学校で習っていたのですが・・・