配列とポインタは別のもの

エキスパートCプログラミング―知られざるCの深層 配列として定義(宣言)したものをポインタで利用するという例を紹介したC言語の入門書は多い。そのくせ、配列とポインタが別物だと言うことは強調しないのがほとんどだ。実際に使われる例で説明すれば、ポインタ嫌いがこんなに多いはずはないと思うのだけれど

配列とポインタが別物だということは、まともな本ならちゃんと紹介されている。確認するには次のコードをコンパイル・実行すればいい。納得できない人は本を読んだらいいでしょう

/* f1.c */
int buf[]={11111,22222};
/* f2.c */
#include <stdio.h>
main()
{
  extern int *buf;
  printf("*((int *)&buf+1): %d\n", *((int *)&buf+1));
  printf("*(buf+1): %d\n", *(buf+1));
}

C言語を256倍使うための本 中学生の時に買った『C言語を256倍使うための本』でも説明されていた。山田君(仮名)曰く、

配列として宣言したものは、あくまでも配列としてアクセスすべきだ(p.112)

トラックバック(0)

このブログ記事を参照しているブログ一覧: 配列とポインタは別のもの

このブログ記事に対するトラックバックURL: http://www.unfindable.net/~yabuki/mt/mt-tb.cgi/698

コメントする


画像の中に見える文字を入力してください。

portrait

 

Translation

著書

schedule

 

2008年11月

            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            

関連商品(Amazon)

関連サイト(Google)

アーカイブ

twitter

  •