(1),float(**def)[10];
def是一个二级指针,它指向的是一个一维数组的指针,数组的元素都是float;
(2),double*(*gh)[10];
gh是一个指针,它指向一个一维数组,数组元素都是double*;
(3),double(*f[10])();
f是一个数组,元素都是函数的指针,指向的函数类型是没有参数且返回double的函数;
即:typedef double (*PFV)(); PFV f[10];
(4),int *((*b)[10]);
与int* (*b)[10]一样,b是一维数组的指针,数组元素都是int*;
(5),long (*fun)(int);
函数指针
(6),int (*(F)(int, int))(int);
F是一个函数指针,指向的函数类型是有两个int参数并且返回一个函数指针的函数,返回的函数指针指向一个int参数且返回int的函数。即:
typedef int (*func)(int);
func F(int, int);
5,int a[9]; int *p; p=a;请问下面哪一个不能表示a[1]?
A.p+1; B.p++; C.a++; D.a+1;
分析;数组名a代表数组的首地址,是一个常量指针,所以其内容是不能修改的。即C错误。
6,指针数组是指一个数组里装着指针;
数组指针是指向数组的指针,它是一个指针,指向整个数组。