- 1、本文档共601页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
用数组名作为函数参数时还应注意以下几点:①形参数组和实参数组的类型必须一致,否则将引起错误。②形参数组和实参数组的长度可以不相同,因为在调用时,只传送首地址而不检查形参数组的长度。当形参数组的长度与实参数组不一致时,虽不至于出现语法错误(编译能通过),但程序执行结果将与实际不符,这是应予以注意的。【例7.13】如把【例7.12】修改如下:voidnzp(inta[8]){inti;printf(\nvaluesofarrayaare:\n);for(i=0;i8;i++){if(a[i]0)a[i]=0;printf(%d,a[i]);}}main(){intb[5],i;printf(\ninput5numbers:\n);for(i=0;i5;i++)scanf(%d,b[i]);printf(initialvaluesofarraybare:\n);for(i=0;i5;i++)printf(%d,b[i]);nzp(b);printf(\nlastvaluesofarraybare:\n);for(i=0;i5;i++)printf(%d,b[i]);}本程序与例7.12程序比,nzp函数的形参数组长度改为8,函数体中,for语句的循环条件也改为i8。因此,形参数组a和实参数组b的长度不一致。编译能够通过,但从结果看,数组a的元素a[5],a[6],a[7]显然是无意义的。在函数形参表中,允许不给出形参数组的长度,或用一个变量来表示数组元素的个数。例如,可以写为:voidnzp(inta[])或写为voidnzp(inta[],intn)其中形参数组a没有给出长度,而由n值动态地表示数组的长度。n的值由主调函数的实参进行传送。由此,例7.13又可改为例7.14的形式。由此,例7.13又可改为例7.14的形式。voidnzp(inta[],intn){inti;printf(\nvaluesofarrayaare:\n);for(i=0;in;i++){ if(a[i]0)a[i]=0; printf(%d,a[i]);}}main(){intb[5],i;printf(\ninput5numbers:\n);for(i=0;i5;i++)scanf(%d,b[i]);printf(initialvaluesofarraybare:\n);for(i=0;i5;i++)printf(%d,b[i]);nzp(b,5);printf(\nlastvaluesofarraybare:\n);for(i=0;i5;i++)printf(%d,b[i]);}解析本程序nzp函数形参数组a没有给出长度,由n动态确定该长度。在main函数中,函数调用语句为nzp(b,5),其中实参5将赋予形参n作为形参数组的长度。多维数组也可以作为函数的参数。在函数定义时对形参数组可以指定每一维的长度,也可省去第一维的长度。因此,以下写法都是合法的。intMA(inta[3][10])或intMA(inta[][10])。第七章函数
7.5局部变量和全局变量7.5.1局部变量7.5.2全局变量通过前面小节的学习,我们知道形参变量只在被调用期间才分配内存单元,调用结束立即释放。这表明形参变量只有在函数内才是有效的,离开该函数就不能再使用了。这种变量有效性的范围称变量的作用域。不仅对于形参变量,C语言中所有的量都有自己的作用域。变量说明的方式不同,其作用域也不同。C语言中的变量,按作用域范围可分为两种,即局部变量和全局变量。初学者一定要多阅读相关程序,尤其要注意同名变量,不同作用域的情况。7.5.1局部变量
局部变量也称为内部变量。局部变量是在函数内定义说明的。其作用域仅限于函数内,离开该函数后再使用这种变量是非法的。例如:intf1(inta)//函数f1//{ intb,c; ……}有效变量:a,b,c;intf2(intx)/*函数f2*/{ inty
文档评论(0)