您的位置:首页 > 编程语言 > C语言/C++

C语言中的高级声明--《c和指针》摘要

2011-09-04 10:55 211 查看
分析C语言中的高级声明时,记住三点:

1、用于声明变量的表达式和普通的表达式在求值时所使用的规则相同

2、下标运算符[ ] 和( )的优先级大于*

3、从里往外分解,可以使用替代符号帮助分解

例子:

1、 int (*f) []; int *f[];

前者是指针,指向数组,数组的元素是int

后者是数组,数组的元素是int *指针

2、int f()[]; int f[]();

前者,f()是函数,返回值是int[],声明非法,因为函数返回值只能是标量值,不能是数组

后者,f[] 是数组,数组的元素类型是int () 函数,函数返回值是int,声明非法,因为数组元素长度必须相同,而不同的函数可能具有不同的长度

3、int ( *f [ ] ) ();

[] 优先级比*高,先看f[] ,得知f是数组,再看*,得知数组的元素是指针,指针指向函数,函数返回值是int

这里可用替换的方法帮助分析,如int *f [ ] 和上面的很像

4、int * ( *f [ ] ) ();

5、int *p(int *); int (* p)( int *);

前者是函数声明,函数名p,因为()优先级比*高,所以相当于是(int *) p (int *);

后者是函数指针,指向的函数返回值为int,参数是int *
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: