指针数组和数组指针
指针数组:是指一个数组里面装着指针。例如:int *a[5];——该数组有五个指针,每个指针指向一个int型。
数组指针:是指它是指针,指向一个数组。例如:int (*a)[5];——a是指针,该指针指向一个有5个int型的数组。
试题:用变量a给出下面的定义。
(1)一个整型数(An integer)
(2)一个指向整型数的指针(A pointer to an integer)
(3)一个指向指针的指针,它指向的指针指向一个整型数(A pointer to a pointer to an integer)
(4)一个有10个整型数的数组(An array of 10 integer)
(5)一个有10个指针的数组,每个指针指向一个整型数组(An array of 10 pointers to integers)
(6)一个指向有10个整型数数组的指针(A pointer to an array of 10 integers)
(7)一个指向函数的指针,该函数有一个整型参数,并返回一个整型数(A Pointer to a function that takes an integer as an argument and returns an integer )
(8)一个有10个指针的数组,指针指向一个函数,该函数有一个整型参数并且返回一个整型数(An array of 10 pointers to functions that take an integer as an argument and return an integer)
解析:
(1)int a; //An integer
(2)int *a; //A pointer to an integer
(3)int **a; //A pointer to a pointer to an integer
(4)int a[10]; //An array of 10 integer
(5)int *a[10]; //An array of 10 pointers to integers
(6)int (*a)[10]; //A pointer to an array of 10 integers
(7)int *a(int); //A Pointer to a function that takes an integer as an argument and returns an integer
(8)int (*a[10])(int); //An array of 10 pointers to functions that take an integer as an argument and return an integer