しなくていい(実際の業務では必要ない)表現のフェイクが多すぎて混乱してるだけじゃね?
配列は領域が単に連続してるだけで先頭だけみたらポインタ
違うとかそういうもんじゃなくて比べられないだろ
ポインタの指す先が問題なんであって・・・
mallocでとった領域だって連続してるし

char *p = (char*)malloc(sizeof(char)*100);
char p[100];

とかどう違う?とか聞いたらまた混乱してしまうんだろか?w
こんなもんの違いなんてそう意識することないと思うけどねw