C言語の勉強をしているものです。
Hello Worldレベルのプログラムしか作ったことないレベルです。

printf出力のされかたで、普通の変数と配列の変数で、
下記の@とAで違いがあり、モヤっとしたものを感じております。

@は理解しました。 "&"を付けるとアドレスを指すことになる。 
しかし、Aが理解できません。 "&"を付けなくてもアドレスが表示できます。
もしかして、配列の変数はポインタ?を指しているのでしょうか。
ポインタ変数の場合 "*"を付けると聞いたことがあるのですが、裏でそういう設定になっていて、
私たちは"*"を省略して使っているだけということなのでしょうか?

@
int data=5;
prinff("dataに代入した値を表示=%x\n", data);
printf("dataの参照アドレスを表示=%x\n, &data);

A
int box[2]={1};
prinff("dataの参照アドレスを表示=%x\n", data);