c 语言的声明规则

    在阅读很多c 语言源代码的时候,我们经常会看到如下的声明

char *j[10];        // j 是一个指向数组的指针
const int *grape;    // 指针所指向的对象是只读
int const *grape;    // 同上
int *grape_jelly;    // 指针是只读的(常量指针)

    刚开始我们看书的时候,根据书上的介绍,很容易记住上面的定义,但是过段时间就很容易忘记了。那么我们怎样能很容易记住一个c 语言的声明呢?下面就介绍优先级规则:

A.    声明从它的名字开始读取,然后按照优先规则顺序依次读取。

B.    优先级从高到低依次是:

    B.  1    声明中被括号括起来的那部分

    B.  2    后缀操作符

               括号( )表示这是一个函数,而方括号[ ] 表示这是一个数组

    B.  3    前缀操作符:星号 * 表示 "指向.... 的指针"

C.    如果const 和 (或)volatile 关键字的后面紧跟类型说明符(如int ,long等),那么它作用于类型说明符。在其他情下cosnt

        和(或) volatile 关键字作用于它左边紧邻的指针星号。

例如:

    char * const *(*next)( )

    这个声明表示 "next 是一个指针,指向一个函数,该函数返回值是一个指针,该指针是一个指向一个类型为 char 的常量指针"


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值