1.const出现在*的右面-->指针是可读的
const出现在*的左面-->指针所指的对象是可读的
eg: const int* a ---- a是只读的
int const* a ---- a是只读的
int *const a ---- 指向a的指针是只读的
const int* const a ---- 两者都是只读的
int const* const a ---- 两者都是只读的
2.c语言分析声明的方法
1)寻找标识符
2)查看标识符右边:[]----表示...的数组
()----表示返回...的函数
3)查看标识符左边:()----这个括号将已处理的声明组合在一起,然后从2)重新开始
const(只读),volatile,*(指向...的指针)
剩下的符号形成声明的基本类型 (eg:static,unsigned int)
eg: char* (*c[10])(int **p)
1)c是一个
2)c是一个数组
3)指向c的指针
4)返回char*的函数
c是一个数组,元素类型是函数指针,所指向函数的返回值是一个指向char的指针
3.typedef是个好同志
void (*signal(int sig,void (*func)(int)))(int)
signal是一个函数,它返回一个函数指针,这个函数指针所指向的函数的返回值为void,参数为int
使用typedef简化这个复杂的声明
typedef void (*ptrtofunc)(int)
ptrtofunc signal(int sig,void (*func)(int)))
阅读(502) | 评论(0) | 转发(1) |