本文主要是介绍C语言指针系列——并不可怕的声明,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
指针就像双节棍,指针的指针就像三节棍,依此类对至n节棍。。。
指针的数组,呃,就像某种伤不起的棍。。。
C语言里面最灵活、有时候也是最让人莫名的就是指针了,以至于专门有一本书叫《C和指针》。尤其是指针的声明,指向整型的指针,指向数组的指针,指向函数的指针,再加上n多个括号的组合,有时候真让人摸不到头脑。其实,理解指针声明的关键首先在于记住*, [], ()操作符的优先级和结合性;然后由指针名称开始由内向外层层解剖,再复杂的声明也不难解释。本文使用一种自创的图示的方法,来清晰地展示指针声明的根本。
首先我们来看一下与指针声明相关的一些运算符的优先级:
(优先级高低由上至下,即上面的操作符的优先级高于下面的运算符的优先级。)
操作符 | 描述 | 结合性 |
---|---|---|
() | 函数调用 | L-R |
[] | 下标引用 | L-R |
* | 间接访问 | R-L |
请务必记住以上运算符的优先级,下面我们来看几个例子。为了能更形象地说明指针声明,我们使用图示法。
1. 基本数据类型的指针。
让我们从最简单的开始,相信大家都能说出这个声明中var的意思。
a) int *var;
显然,var是一个指向整型的指针,图示如下:
2. “数组的指针”和“指针的数组”
经过热身,来看一下数组的指针。
a) int (*var)[6];
这篇关于C语言指针系列——并不可怕的声明的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!