| ||||||||||||||||||||||||
| int *f() |
f は関数で、返すのはポインタで、そのポインタが指すのは intである ↓ f は int へのポインタを返す関数である |
| int (*pf)() |
pf はポインタで、指すのは関数で、その関数が返すのは intである ↓ pf は int を返す関数へのポインタである |
| char **argv |
argv はポインタで、指すのはポインタで、そのポインタが指すのは char である ↓ argv は char へのポインタへのポインタである |
| int *tab[13] |
tab は配列で、その要素はポインタで、そのポインタが指すのは int である ↓ tab は int へのポインタの配列である |
| int (*ptab)[13] |
ptab はポインタで、指すのは配列で、その要素は int である ↓ ptab は int の配列へのポインタである |
| char (*(*x())[])() |
x は関数で、返すのはポインタで、指すのは配列で、その要素はポインタで、そのポインタが指すのは関数で、返すのは char である ↓ x は char を返す関数を指すポインタの配列を指すポインタを返す関数 |
| char (*(*y[])())[5] |
y は配列で、その要素はポインタで、そのポインタが指すのは関数で、返すのはポインタで、そのポインタが指すのは配列で、その要素は char である ↓ y は char の配列を指すポインタを返す関数を指すポインタの配列である |
typedef 既存の型 新しい型名;
typedef int Length; Length len, maxlen; /* int len, maxlen; と同じ */ typedef char *String; String p; /* char *p; と同じ */ int strcmp(String, String); /* int strcmp( char *, char * ); と同じ */
typedef struct tnode
{
char *word;
int count;
struct tnode *left;
struct tnode *right;
} TNODE, *Tnodep;
Tnodep talloc(void)
{
return( (Tnodep)malloc(sizeof(TNODE)) );
}