Chinaunix首页 | 论坛 | 博客
  • 博客访问: 237028
  • 博文数量: 108
  • 博客积分: 3092
  • 博客等级: 中校
  • 技术积分: 1172
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-25 16:35
文章分类

全部博文(108)

文章存档

2011年(3)

2010年(43)

2009年(19)

2008年(43)

我的朋友

分类: C/C++

2009-04-18 11:25:18

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) |
给主人留下些什么吧!~~