November 19, 2012

配列とポインタは違うんだよ!

配列名はポインタとして扱われる◯
配列とポインタで共通の表記が使える◯
配列とポインタは同じ☓

同じように見えるだけで、配列とポインタは違います!

違うところ
・配列では、要素数分のメモリ領域が確保されている
sizeof array //配列の型のサイズ*要素数
sizeof ptr     //ポインタ変数のサイズ

・配列は固定された変数
 ・配列にポインタは代入できない
 array = ptr; //コンパイルエラー

 ・配列名が指すアドレスは変更できない
 array++; //コンパイルエラー

ちなみに、関数の引数として配列を指定した場合、実際に渡されるのは配列の先頭を示すポインタになります。
仮引数が配列型で宣言されていても、ポインタ型で宣言されていても、渡されるのは、必ずポインタになります。

matssaku at 07:46│Comments(0)TrackBack(0)clip!C 

トラックバックURL

この記事にコメントする

名前:
URL:
  情報を記憶: 評価: 顔