a) 一个整型数(An integer) int a
b) 一个指向整型数的指针(A pointer to an integer) int* a ;
c) 一个指向指针的的指针,它指向的指针是指向一个整型数(A pointer to a pointer to an integer) int* *p
d) 一个有10个整型数的数组(An array of 10 integers) int a[10]
e) 一个有10个指针的数组,该指针是指向一个整型数(An array of 10 pointers to integers)int* a[10]
f) 一个指向包含10个元素的一维数组的指针变量(A pointer to an array of 10 integers)
int (*a)[10] char* (*a)[10]
g) 一个指向函数的指针,该函数有一个整型参数并返回一个整型数(A pointer to a function that takes an integer as an argument and returns an integer)
int (*p)(int)
h) 一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数( An array of ten pointers to functions that take an integer argument and return an integer )
int (*p[10])(int)
i) 一个指针,指向一个数组,该数组有十个指针,每个指针指向一个函数,每个函数返回值int参数int
int (*(*p)[10])(int)
ii) 一个指针,指向一个数组,该数组有十个指针,每个指针指向一个函数,每个函数返回值是个函数指针,参数int, 返回的函数指针指向一个参数为void 返回值void的函数。
void (*(*(*a)[10])(int))()
(iii)一个指针,指向函数,该函数参数int 返回值是一个指向数组的指针,该数组是一个含有10个int的数组
b) 一个指向整型数的指针(A pointer to an integer) int* a ;
c) 一个指向指针的的指针,它指向的指针是指向一个整型数(A pointer to a pointer to an integer) int* *p
d) 一个有10个整型数的数组(An array of 10 integers) int a[10]
e) 一个有10个指针的数组,该指针是指向一个整型数(An array of 10 pointers to integers)int* a[10]
f) 一个指向包含10个元素的一维数组的指针变量(A pointer to an array of 10 integers)
int (*a)[10] char* (*a)[10]
g) 一个指向函数的指针,该函数有一个整型参数并返回一个整型数(A pointer to a function that takes an integer as an argument and returns an integer)
int (*p)(int)
h) 一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数( An array of ten pointers to functions that take an integer argument and return an integer )
int (*p[10])(int)
i) 一个指针,指向一个数组,该数组有十个指针,每个指针指向一个函数,每个函数返回值int参数int
int (*(*p)[10])(int)
ii) 一个指针,指向一个数组,该数组有十个指针,每个指针指向一个函数,每个函数返回值是个函数指针,参数int, 返回的函数指针指向一个参数为void 返回值void的函数。
void (*(*(*a)[10])(int))()
(iii)一个指针,指向函数,该函数参数int 返回值是一个指向数组的指针,该数组是一个含有10个int的数组
int( *(*a)(int) )[10]
趣味应用
#include <stdio.h>
int main()
{
printf(" 得到数组的最后一个数的趣味实现 \n");
const int MAXN = 8;
int a[MAXN] = {1, 2, 4, 8, 16, 32, 64, 128};
int *p = (int*)(&a + 1); //&a 是一个指针,指向大小为4的数组 int(*)[MAXN]
printf("%d\n", *(p - 1)); //为128
return 0;
}