1. const int a
2. int const a
3. const int *a
4. int * const a
5. const int * const a
解析:
1和2是一样的,a是一个长整型数。const放置的位置没有硬性规定,一般情况下放在最左边。
3表示a是一个指针,指向常整型。
4表示a是一个常指针,指向整型。
5表示a是一个常指针,指向常整形。
int *i; // *i 是声明符, int是声明说明符
int **i; // **i是声明符, int是声明说明符
int &i; // &i 是声明符, int是声明说明符
int (*pf)(int); // pf是一个指针,指向函数,返回值是整型
int *f(int i); // f是一个函数,返回一个指针,指向整型
typedef int (*PIFN)(char *); // 返回int型的函数。
PIFN pifnDispatchArray[7]; // pifnDispatchArray是七个指针的数组,指向返回int型的函数。
//复杂的声明一个10个char类型数组:
char line[10];
char text[10];
//未复杂声明起别名
typedef char Line[10];
Line text, line;
typedef 是为复杂的声明 定义一个简单的别名
为指向函数的指针创建别名
typedef void (*PtrToFunc)();
PtrToFunc ptr;
为指向Block的指针创建别名
typedef void (^CallBackBlock)();
CallBackBlock callBack;