整数 a: int
a的地址: int*(指向整数的指针)int *p= &a;
存放a的数组b: int[n] int b[] = {a};
存放a的地址的数组c:int*[n] int *c[] = {&a};
b的地址: int(*)[n](指向包含n个整数的数组的指针),n是数组b大小
int (*p)[] = &b;
p
是指向int
类型数组的指针
c的地址: int(**)[n](指向包含n个整数指针的数组的指针),n是数组c大小
int *(*p)[] = &c;p
是指向int
指针类型数组的指针
指向printf函数的指针d: int (*)(const char*, ...)
int (*d)(const char *, ...)= printf;
d
是函数指针,指向printf
函数,printf
函数的返回类型是int
,参数是可变的。
存放d的数组: int (*[n])(const char*, ...) 数组的大小n
int (*e[])(const char *, ...) = {printf};
e
是函数指针数组,存储指向printf
函数的指针。
printf
函数的签名:
int printf(const char*, ...);