|
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)) ); }