C语言中申明解析方法的总结(DOC可编).docVIP

C语言中申明解析方法的总结(DOC可编).doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言中申明解析方法的总结(DOC可编).doc

C语言中申明解析方法的总结 2011-11-04 00:00比特网悠虎 关键字:C语言   C语言中的声明是一个比较令人头痛的问题,尤其一些复杂的声明看起来甚至会令人感到恐怖,如果您是一位初学者,您一定会对下面这几个式子感到畏惧。因为对于刚接触这种形式的人来说,这简直太复杂了,当然前提是假定您未掌握分析这方面的专业知识。  第一个声明: void(*signal(int sig, void (*func)(int)))(int);第二个声明:const char *const(*sinc(char *sincg(),int (*p)(int a,int *b)))(int **sing);其中第一个声明是某系统函数的声明,而第二个声明是我自己即兴创作的,但我敢保证它除了复杂一点之外没任何缺点。如果你对这两个声明感到异常头痛,并且急迫的想知道如何分析这样的声明来提高自己的c水平和熟练度。那么就请阅读下面的内容,让我将自己所学到的知识与您一起分享吧!   首先我们来看一个很简单的例子——复杂的东西都是由简单的构成,一旦将所有简单的都搞明白了,你才能,并且也可以轻易的弄懂复杂的问题,而那时候便只需要某一个转机就行了,那转机往往就是总结。   char next ;大家都很容易知道,这里声明了一个char 类型的变量next.这里的next是一个标识符,表明它的变量身份,所以我们可以这样想,一旦碰到标识符,如同next,就用这样一句话替代,(标识符)是………,比如前面的next,可以用next是……来替代,如同c语言中的宏定义一样,如果这样的说法让你感到有点晕,我们换一种方式,干脆这样定义一下,#define 标识符标识符是……   也就是说,一旦碰到标识符,你脑海中就立刻用(标识符)是………这样一句话来完全替代那个标识符。于是,刚才的那个声明,char next;我们用更规范的类似数学上的形式思维来考虑一下,首先我们分析标识符next,根据前面的说法,我们看到next之后,立刻用next是…。来替代,这样,我们就得到了整个声明的前一部分:“next是……。”这样一个句子,但是next究竟是什么呢,这时候我们需要看声明中的其他内容,比如上例中的char,这时候我们很自然的就弄清楚了next是(一个char类型的变量)。所以char表明的是一个类型变量。于是,经过这样一个思维过程,上面的声明就分析完成了。   大家先不要失去耐心,我用这么长的篇幅来叙述这样一个简单的例子并不是掉你胃口,相反,是为了让你更加容易理解下面的内容。使我的文字跳跃度不至于让你的思维感到突兀甚至短路——这不是我写这篇总结的目的。   接下来我们把这个声明稍微加长一点,使它变成char next();或者是char next[];这时候,根据我们所学的知识,依然能够很轻易的看出,前面一个是声明的返回char类型变量的函数,而后一个是声明一个char类 型变量的数组,正是这个时候,有一个问题请你注意,我们添加这个括号之后究竟使我们的思维改变了什么,为什么当这两个符号出现之后我们里就就明白了这是一 个函数或是一个数组,所以,在这里我想告诉你也许你从未意识到过的一个新知识点就是,圆括号和方括号是声明中的最高优先级[/B].这是一个非常重要的知 识点,当你发现标识符的右边紧挨着一个左圆括号(请一定注意到我这里写的是左圆括号[/B])或者是方括号的时候,你就不要有任何怀疑的告诉自己,标识符 是一个(返回…的函数)或者数组。让我们用这样的思维再来分析一下char next();这个声明,首先分析标识符next,得出next是…。,然后向右看它右边紧靠它的是不是圆括号或者方括号,这个例子中是一个圆括号,所以我们得出next是一个返回…。的函数,最后通过char类型符得出,next是一个返回char型变量的函数,至此,整个声明分析完成。   好了,现在让我们来总结声明分析中的前两个基本步骤,也是关键步骤。   首先,分析声明中的标识符,这里有一个问题,不知道大家发现没,我上面举的例子中都是只有一个标识符,如果声明中出现多个标识符怎么处理,比如说在next函数中增加几个参数,如char next(int a,int b);这 样的话,整个声明中有三个标识符,我们究竟首先选取分析哪个标识符呢。通过这个简单的例子,我们很容易观察出,首先选择的是最左边的标识符,当然,我们决 不能根据一个特例就得出普遍结论,在这里,我以一个已经掌握了这个知识点的人的身份告诉你,你的猜想是正确的,标识符从最左边的开始处理,c中确实是这样做的。那么现在,你也掌握了这个知识点,让我们继续向下讨论。当我们选定标识符后,就要观察紧靠它右边的声明器(也就是在声明中出现的各种各样的符号和变量,如(),*,const,[]

文档评论(0)

rewfdgd + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档