COMPLEX DECLARATION IN C
int (*ptr)[100];
int (*ptr[100]);
int (*ptr)();
int (*ptr[100])();
Evaluating Complicated DECLARATION
- int *ptr[100];
* *ptr[100] integer
* *(ptr is array of 100) integer
* ptr is array of pointer to integer
- int (*ptr)[100];
* (*ptr)[100] integer
* (ptr is pointer to) array of 100 integer
* ptr is pointer to array of integer
- int *(ptr[100]);
* *(ptr[100]) integer
* *(ptr is array of 100) integer
* ptr is array of pointer to integer
- int (*ptr[100]);
* *ptr[100] integer
* *(ptr is array of 100) integer
* ptr is array of pointer to integer
- int *func();
* *func() integer
* *(func is function returning) integer
* func is function returning pointer to integer
- int (*func)();
* (*func)() integer
* (func is pointer to)function returning integer
* func is pointer to function returning integer
- int (*func[])()
* (*func[])() integer
* (*(func is array of))function returning integer
* *(func is array of) function returning integer
* func is array of pointer to function returning integer
- int *(*f)()
* *(*f)() integer
* *((*f) function returning) integer
* *(f is pointer to function returning) integer
* f is pointer to function returning pointer to integer
- int *(*f[])()
* *(*f[])() integer
* *(*(f is array of))() integer
* *(f is array of pointer to)() integer
* *(f is array of pointer to function returning) integer
* f is array of pointer to function returning pointer to integer
- int (*(*x())[])()
* (*(*x())[])() integer
* (*(*(x is function returning))[])() integer
* (*(x is function returning pointer to)[])() integer
* (*(x is function returning pointer to array of))() integer
* (x is function returning pointer to array of pointer to)() integer
* x is function returning pointer to array of pointer to function returning integer
- int (*(*x[3])())[5]
* (*(*x[3])())[5] integer
* (*(*x is array of)())[5] integer
* (*(x is array of pointer to)())[5] integer
* (x is array of pointer to function returning pointer to)[5] integer
* x is array of pointer to function returning pointer to array of integer
- void (*f())(int)
* (*f())(int) void
* (*(f is function returning))(int) void
* (f is function returning pointer to) (function taking integer and returning) void
* f is function returning pointer to function taking integer and returning void
- void (*)(int)
* (*)(int) void
* (pointer to)(function taking integer and returning) void
* pointer to function taking integer and returning void
- void *(int)
* *(int) void
* (function taking integer and returning) (pointer to) void
* function taking integer and returning pointer to void
- void *f(int, void (*)(int))
* *f(int, void (*)(int)) void
* *(f is function taking integer and pointer to function taking integer and returning void and returning) void
* f is function taking integer and pointer to function taking integer and returning void and returning pointer to void
- void (*f)(int, void (*)(int))
* (*f)(int,void (*)(int)) void
* (f is pointer to)(function taking integer and pointer to function taking integer and returning void and returning) void
* f is pointer to function taking integer and pointer to function taking integer and returning void and returning void
- void (*f(int, void (*)(int)))(int)
* (*f(int, void (*)(int)))(int) void
* (*(f is function taking int and pointer to function taking integer and returning void and returning))(int) void
* f is function taking int and pointer to function taking integer and returning void and returning pointer to function taking integer and returning void
- float (*(*b())[])()
* (*(*b())[])() float
* (*(*(b is function taking void and returning))[])() float
* (*(b is function taking void and returning pointer to)[])() float
* (*(b is function taking void and returning pointer to array of))() float
* (b is function taking void and returning pointer to array of pointer to)() float
* b is function taking void and returning pointer to array of pointer to function taking void and returning float
- void *(*c)(char, int (*)())
* *(*c)(char, int (*)()) void
* *(c is pointer to)(char, int (*)()) void
* *(c is pointer to function taking char and pointer to function taking integer and returning void and returning) void
* c is pointer to function taking char and pointer to function taking integer and returning void and returning pointer to void
- char **(*f)(char *, char **)
* f is pointer to function taking pointer to char and pointer to pointer to char and returning pointer to pointer to char
- void **(*d)(int &, char **(*)(char *, char **))
* **(*d)(int &, char **(*)(char *, char **)) void
* **(d is pointer to)(int &, char **(*)(char *, char **)) void
* **(d is pointer to function reference to integer and pointer to function taking pointer to char and pointer to pointer to char and returning pointer to pointer to char and returning) void
* d is pointer to function reference to integer and pointer to function taking pointer to char and pointer to pointer to char and returning pointer to pointer to char and returning pointer to pointer to void
- float (*(*e[10])(int &))[5]
* (*(*e[10])(int &))[5] float
* (*(*(e is array of))(int &))[5] float
* (*(e is array of pointer to)(int &))[5] float
* (*(e is array of pointer to function taking reference to integer and returning))[5] float
* (e is array of pointer to function taking reference to integer and returning pointer to)[5] float
* (e is array of pointer to function taking reference to integer and returning pointer to array of) float
* e is array of pointer to function taking reference to integer and returning pointer to array of float
- float *(*(*foo())[SIZE][SIZE])()
* *(*(*foo())[SIZE][SIZE])() float
* *(*(*foo is function taking void and returning)[SIZE][SIZE])() float
* *(*(foo is function taking void and returning pointer to)[SIZE][SIZE])() float
* *(*(foo is function taking void and returning pointer to multi-dimensional array of))() float
* *(foo is function taking void and returning pointer to multi-dimensional array of pointer to)() float
* *(foo is function taking void and returning pointer to multi-dimensional array of pointer to function taking void and returning) float
* foo is function taking void and returning pointer to multi-dimensional array of pointer to function taking void and returning pointer to float