int data[]={10,200,9};

printf("配列dataのアドレス:%d\n",&data);
と
printf("配列dataのアドレス:%d\n",data);
は同じ値が出る。

配列dataのアドレスは、data[0]のアドレスと同じです。
配列data自体がポインタになっているのです。
よって、アドレスを示す"&"がなくても同じ値が出ます。
-----------------------------------------------
&dataとdataで同じ値が出力される??んなアホな!

一行目意味不明。
「配列dataに格納されている値はdata[0]のアドレスです。」
なら分かるけど、ポインタ(配列data)のある場所は
変数(data[0])のある場所と同じなわけないよね??

三行目「よって」が意味不明。
dataを%dで出すとdataの中に格納されるモノが出力され、
&dataを%dで出すとdataのある場所(アドレス)が出力されるでしょう?
&が付いてるものと付いてないものが何で同じ値が出るわけないよね??
「ポインタの中身を示せ」と「ポインタ自体のある番地を示せ(&)」
の結果はさすがに違う値のはずだよね?

↑ワザとこういう書き方をしています。また良かったら教えてくださいです。。