首页 理论教育 C51单片机局部变量及作用域

C51单片机局部变量及作用域

时间:2023-11-17 理论教育 版权反馈
【摘要】:在一个函数内部定义的变量被称作局部变量,这种变量的作用域是在本函数范围内。说明:1)main函数也是一个函数,它内部定义的变量也只能在main函数内部使用,而不能在其他函数内部使用main函数内部定义的变量。这样做有个好处,可以在函数内部,根据需要设置任何的变量名。例6-13在main中定义了i,j,k 3个变量,其中k未赋初值。而在复合语句内又定义了1个变量k,并赋初值为9。注意这两个k是两个变量。

C51单片机局部变量及作用域

在一个函数内部定义的变量被称作局部变量,这种变量的作用域是在本函数范围内。通俗一点说,局部变量只能在定义它的函数内部使用,而不能在其他函数内使用这个变量。

在函数main内部,变量m,n有效。

说明:

1)main函数也是一个函数,它内部定义的变量也只能在main函数内部使用,而不能在其他函数内部使用main函数内部定义的变量。

2)不同的函数中可以使用相同的变量名,但它们是不同的变量。记得函数在执行时,系统要给它分配一块单独的内存吗?所以虽然变量名是相同的,但系统看到它们定义在不同的函数中,就认为它们是不同的变量。这样做有个好处,可以在函数内部,根据需要设置任何的变量名。如果不是这样,那么在一个函数内定义了一个变量名后,在其他函数内就不能再使用相同的变量名了。(www.xing528.com)

3)形参也属于局部变量,作用范围在定义它的函数内。所以在定义形参和函数体内的变量时是肯定不能重名的了。

4)在复合语句内部也可以定义变量,这些变量的作用域只在本复合语句内。只在需要的时候再定义变量,这样做可以提高内存的利用率。

【例6-13】

例6-13在main中定义了i,j,k 3个变量,其中k未赋初值。而在复合语句内又定义了1个变量k,并赋初值为9。注意这两个k是两个变量。在复合语句外程序部分,由main函数中定义的k起作用,而在复合语句内则由在复合语句内定义的k起作用。因此,程序第4行的k为main所定义,其值应为6。第7行输出k值,因为它在复合语句内,由复合语句内定义的k起作用,其初值为9,所以输出值为9。第9行输出k值,因为在复合语句之外,输出的k应为main所定义的k,k值由第4行已获得为6,故输出也为6。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈