指针就像双节棍,指针的指针就像三节棍,依此类对至n节棍。。。
指针的数组,呃,就像某种伤不起的棍。。。
C语言里面最灵活、有时候也是最让人莫名的就是指针了,以至于专门有一本书叫《C和指针》。尤其是指针的声明,指向整型的指针,指向数组的指针,指向函数的指针,再加上n多个括号的组合,有时候真让人摸不到头脑。其实,理解指针声明的关键首先在于记住*, [], ()操作符的优先级和结合性;然后由指针名称开始由内向外层层解剖,再复杂的声明也不难解释。本文使用一种自创的图示的方法,来清晰地展示指针声明的根本。
首先我们来看一下与指针声明相关的一些运算符的优先级:
(优先级高低由上至下,即上面的操作符的优先级高于下面的运算符的优先级。)
| 操作符 | 描述 | 结合性 |
|---|---|---|
| () | 函数调用 | L-R |
| [] | 下标引用 | L-R |
| * | 间接访问 | R-L |
请务必记住以上运算符的优先级,下面我们来看几个例子。为了能更形象地说明指针声明,我们使用图示法。
1. 基本数据类型

本文深入解析C语言中复杂的指针声明,包括指针的指针、数组的指针、函数的指针等。通过图示法和操作符优先级,帮助读者理解指针声明的规律,例如`int (*var)[6]`是表示`var`是一个指向含有6个整数的数组的指针,而`int *var[6]`则表示`var`是一个包含6个整数指针的数组。文章强调掌握操作符优先级和由内向外的分析方法对于理解指针声明至关重要。
最低0.47元/天 解锁文章
2796

被折叠的 条评论
为什么被折叠?



