爱看文学网

手机浏览器扫描二维码访问

第三十五章 作用域上(第2页)

printf(“sum=%d“,d);

}

intadd(inta,intb)

{

intsum=ab;

retusum;

}

声明一个函数,其实只需要三个元素:函数名,参数列表和返回值,这个时候就不用大括号了,而是用分号。

具体的实现就和我们之前讲的内容一样了。

如果函数的实现在调用在前,其实是不用声明的,就像你们现在这种情况。但是不建议这样做,因为当函数调用关系比较复杂的时候,我们不好调整实现顺序,所以正规的做法是在#include之后声明所有要定义的函数,然后在main函数之前或者自后逐一实现。」

我尝试了一下老爹所说的,警告信息果然消失了。而且我还发现了一个比较有趣的东西,那就是如果我只对函数进行声明但是不实现它,这个时候编译器不会再报「implicitdeclarationoffunctionadd」警告,只会有「undefinedreferencetoadd」错误。

接下来老爹又给我们演示了有参数,没有返回值、没有参数,有返回值,没有参数,也没有返回值的几种情况,这样一来,我们对函数的定义就有了初步的认识。

「既然函数的定义和调用已经没有问题了,那么我们接着再来说说之前玥玥提出的问题,在main函数里边有个名为sum的变量,而add里面也有这么一个变量,按照之前我的说法,变量的名字不能重复。

但是程序现在已经正常运行了,说明是没有问题的,那是不是意味着我之前说的是错误的呢?

其实这个说法的确是有问题的,应该要加一个限定条件,在同一个作用域里面,不能声明两个名称一样的变量。因为当时的着重点是将标识符起名规则,如果引入作用域,对你们来说很难理解。

至于什么是作用域,我们还是以现实中的例子来说明。

你们看哈,咱们现在住这个地方呢,是在红光镇的辖区里边,那么红光镇只能有一个镇长对吧?而且红光镇里边的大小事情都归镇长管。」

我和小弦子点了点头,而后接着听老爹讲道:「那么我们可以说,镇长的作用域就是一个镇,他只能管自己镇里的事情。

那红光镇是在郫都区的管辖范围之内,而郫都区又只能有一个区长,整个区里面的大大小小的事务,都得由区长来管,这其中当然也包括了红光镇。

变量也一样,变量也有自己的作用域,而变量的作用域,就是声明这个变量所在的大括号中,例如:

intfieldarea()

{

inta=100;

for(inti=0;i

{

intb=i;

}

}

这里面的变量a是在fieldarea函数的大括号中声明的,它作用域就是fieldarea函数,一旦脱离了这个范围就不能再使用了。而变量b是在for循环的大括号中的,那么它的作用域就是一次for循环,也就是说每一次for循环都会重新声明一个变量b。」

「那上一次循环的变量b到哪儿去了?」

王妃称心  最强豪婿陆凡  龙婿陆凡  异界烽火录贰烽云再起  青梅千千结  我的蛮荒部落  顾九辞霍明澈  阴阳眼小师妹  四龙攒凤  韩娱之聚光  大佬甜妻宠上天  衫生诡  戚风童话  张钟颖  校园全能马甲女神  迟宠  梦灾末世生存指南  夫人的病今天好了吗  嗣子荣华路  上门龙婿陆凡  

热门小说推荐
霸道修真农民

霸道修真农民

方云,因为误入修真者遗留的洞府成为地球上最后一个修真者,却因为念家只想在家陪陪家人,搞搞旅游。发展起来的神奇的小山村引来了许多心怀鬼胎的各路人马,但是都在方云绝对的力量面前碰得鼻青脸肿。...

主神逍遥

主神逍遥

杨启峰作为主角一生禄禄无为,挂了!重生归来,发现自己竟然被穿越者抢夺了机缘。在这主神天降,灵气复苏神话再临的年代中,重生者干掉穿越者,漫步诸天万界,屹立于世界之巅。...

末世红包龙帝

末世红包龙帝

每天三至五更叮!红包开启,获得一只小龙女叮!获得一把无名剑叮!获得女帝一个叮!获得龙帝霸气诀欢迎加入粉丝群...

仙妃倾世

仙妃倾世

世上最可悲之事,莫过于要嫁之人不是所爱因利益嫁给言灵国第一美男子言帝封,旁人羡慕不已,她却心如止水。旁的夫妻你侬我侬,交颈而卧。她和他呢?表面相敬如宾,暗中你死我活...

星星之火可以撩影帝

星星之火可以撩影帝

星星之火可以撩影帝由作者君之创作全本作品该小说情节跌宕起伏扣人心弦是一本难得的情节与文笔俱佳的好书919言情小说免费提供星星之火可以撩影帝全文无弹窗的纯文字在线阅读。...

每日热搜小说推荐