1.用变量a给出下面各项的定义。
(1) 一个整型数
(2) 一个指向整型数的指针
(3) 一个指向指针的指针,它指向的指针是指向一个整型数
(4) 一个有10个整型数的数组
(5) 一个有10个指针的数组,该指针是指向一个整型数的
(6) 一个指向有10个整型数数组的指针
(7)一个指向数组的指针,该数组有10个指针,每个指针指向一个整型数
(8)一个指向函数的指针,该函数有一个整型参数并返回一个整型数
(9)一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数
(10)一个指向函数的指针,该函数有一个整形参数并返回一个指向函数的指针,返回的函数指针指向有一个整型参数且返回一个整型数的函数
答案:
(1) int a;
(2) int *a;
(3) int **a;
(4) int a[10];
(5) int *a[10];
(6) int(*a)[10];
(7) int *(*a)[10];
(8) int(*a)(int);
(9) int(*a[10])(int);
(10) int(*(*a)(int))(int);
2.下面的变量a都代表什么含义?
(1)float(**a)[10];
(2) double*(*a)[10];
(3) double(*a[10])();
(4) int*((*a)[10]);
(5) long(*a)();
(6) int(*(*a)(int,int))(int);
答案:
(1) a是一个二级指针,该指针指向一个一级指针,这个一级指针指向一个有10个float型元素的数组。
(2) a是一个指针,该指针指向一个有10个指针元素的数组,每个指针元素指向一个double类型的数据。
(3) a是一个有10个元素的数组,每个元素都是一个函数指针,该函数指针指向一个没有参数且返回double的函数。
(4) a是一个指针,该指针指向一个有10个指针元素的数组,每个指针元素指向一个int类型的数据。
(5) a是一个指向函数的指针,该函数没有参数且返回long。
(6) a是一个指向函数的指针,该函数有两个整形参数并返回一个指向函数的指针,返回的函数指针指向有一个整型参数且返回一个整型数的函数。