ページ 11

typedefについて

Posted: 2009年10月16日(金) 18:20
by つる
こんばんは。
C言語は初心者で、参考書を見ながら勉強中です。WindowsのVistaを使っています。コンパイラはBorland C++です。

参考書を見ていたら、typedefについて分からなかったので質問します。

typedef int INTEGER;
と宣言すると、
 INTEGER a;
 と、
 int a;
は実質的には同じになると記述されていました。
 ここは、理解できたのですが、

 typedef int Int5ary[5];
INt5ary x = {1, 2, 3}; ----①

 ①は int x[5] = {1, 2, 3};と同じであると記述されているのですが、上記の方法ならば、
 ①は int x = {1, 2, 3};になるのではないのでしょうか?

 どなたか、typedefについて教えていていただけませんか?
 よろしくお願いします。

Re:typedefについて

Posted: 2009年10月16日(金) 18:50
by GPGA
この問題は「型」というものの考え方を変えるだけで結構すんなり理解することができると思います。

int n[5];

上記を見た時に
int型の n という要素を5個もった配列を定義した
と認識すると思いますが、これを
intの5個の要素をもった配列という「型」の n を定義した
という考えたかに変えるのです。
プログラム的に記述すると以下のような考え方です。

int[5] n;


なお、JavaやC#などの言語だと型をそのように考えるようになっており
上記の内容を実際のプログラムで記述すると

int[/url] n = new int[5];

となります。
int配列の型 n を定義し、要素数を5個もった状態で実体化させています。