c语言中申明解析方法的总结

c语言中申明解析方法的总结

ID:32366092

大小:62.80 KB

页数:4页

时间:2019-02-03

c语言中申明解析方法的总结_第1页
c语言中申明解析方法的总结_第2页
c语言中申明解析方法的总结_第3页
c语言中申明解析方法的总结_第4页
资源描述:

《c语言中申明解析方法的总结》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、C语言中申明解析方法的总结2011-11-0400:00比特网悠虎关键字:C语言  C语言中的声明是一个比较令人头痛的问题,尤其一些复杂的声明看起来甚至会令人感到恐怖,如果您是一位初学者,您一定会对下面这几个式子感到畏惧。因为对于刚接触这种形式的人来说,这简直太复杂了,当然前提是假定您未掌握分析这方面的专业知识。  第一个声明:void(*signal(intsig,void(*func)(int)))(int);第二个声明:constchar*const(*sinc(char*sincg(),int(*p)(inta,int*b)))(int**sing);其中第一个声明是某系统函数的声明,

2、而第二个声明是我自己即兴创作的,但我敢保证它除了复杂一点之外没任何缺点。如果你对这两个声明感到异常头痛,并且急迫的想知道如何分析这样的声明来提高自己的c水平和熟练度。那么就请阅读下面的内容,让我将自己所学到的知识与您一起分享吧!  首先我们来看一个很简单的例子——复杂的东西都是由简单的构成,一旦将所有简单的都搞明白了,你才能,并且也可以轻易的弄懂复杂的问题,而那时候便只需要某一个转机就行了,那转机往往就是总结。  charnext;大家都很容易知道,这里声明了一个char类型的变量next.这里的next是一个标识符,表明它的变量身份,所以我们可以这样想,一旦碰到标识符,如同next,就用这样

3、一句话替代,(标识符)是………,比如前面的next,可以用next是……来替代,如同c语言中的宏定义一样,如果这样的说法让你感到有点晕,我们换一种方式,干脆这样定义一下,#define标识符标识符是……  也就是说,一旦碰到标识符,你脑海中就立刻用(标识符)是………这样一句话来完全替代那个标识符。于是,刚才的那个声明,charnext;我们用更规范的类似数学上的形式思维来考虑一下,首先我们分析标识符next,根据前面的说法,我们看到next之后,立刻用next是…。来替代,这样,我们就得到了整个声明的前一部分:“next是……。”这样一个句子,但是next究竟是什么呢,这时候我们需要看声明中的

4、其他内容,比如上例中的char,这时候我们很自然的就弄清楚了next是(一个char类型的变量)。所以char表明的是一个类型变量。于是,经过这样一个思维过程,上面的声明就分析完成了。  大家先不要失去耐心,我用这么长的篇幅来叙述这样一个简单的例子并不是掉你胃口,相反,是为了让你更加容易理解下面的内容。使我的文字跳跃度不至于让你的思维感到突兀甚至短路——这不是我写这篇总结的目的。  接下来我们把这个声明稍微加长一点,使它变成charnext();或者是charnext[];这时候,根据我们所学的知识,依然能够很轻易的看出,前面一个是声明的返回char类型变量的函数,而后一个是声明一个char类

5、型变量的数组,正是这个时候,有一个问题请你注意,我们添加这个括号之后究竟使我们的思维改变了什么,为什么当这两个符号出现之后我们里就就明白了这是一个函数或是一个数组,所以,在这里我想告诉你也许你从未意识到过的一个新知识点就是,圆括号和方括号是声明中的最高优先级[/B].这是一个非常重要的知识点,当你发现标识符的右边紧挨着一个左圆括号(请一定注意到我这里写的是左圆括号[/B])或者是方括号的时候,你就不要有任何怀疑的告诉自己,标识符是一个(返回…的函数)或者数组。让我们用这样的思维再来分析一下charnext();这个声明,首先分析标识符next,得出next是…。,然后向右看它右边紧靠它的是不是

6、圆括号或者方括号,这个例子中是一个圆括号,所以我们得出next是一个返回…。的函数,最后通过char类型符得出,next是一个返回char型变量的函数,至此,整个声明分析完成。  好了,现在让我们来总结声明分析中的前两个基本步骤,也是关键步骤。  首先,分析声明中的标识符,这里有一个问题,不知道大家发现没,我上面举的例子中都是只有一个标识符,如果声明中出现多个标识符怎么处理,比如说在next函数中增加几个参数,如charnext(inta,intb);这样的话,整个声明中有三个标识符,我们究竟首先选取分析哪个标识符呢。通过这个简单的例子,我们很容易观察出,首先选择的是最左边的标识符,当然,我们

7、决不能根据一个特例就得出普遍结论,在这里,我以一个已经掌握了这个知识点的人的身份告诉你,你的猜想是正确的,标识符从最左边的开始处理,c中确实是这样做的。那么现在,你也掌握了这个知识点,让我们继续向下讨论。当我们选定标识符后,就要观察紧靠它右边的声明器(也就是在声明中出现的各种各样的符号和变量,如(),*,const,[]等的官方说法),这里分两种情况:如果出现的是一个左圆括号,那么标识符就是一个返

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。