首页 理论教育 AVR单片机局部变量定义和作用域

AVR单片机局部变量定义和作用域

时间:2023-11-20 理论教育 版权反馈
【摘要】:在一个函数内部定义的变量被称作局部变量,这种变量的作用域是在本函数范围内。说明:1)main函数作为主函数,也是一个函数,它内部定义的变量也只能在main函数内部使用,而不能在其他函数内部使用main函数内部定义的变量。例7.13在main函数中定义了i、j、k3个变量,其中变量k未赋初值。在复合语句外程序部分,由main函数中定义的k起作用,而在复合语句内则由在复合语句内定义的k起作用。因此程序第4行的k为main函数所定义,其值应为10。

AVR单片机局部变量定义和作用域

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

变量n、x、y只有在函数a中有效。

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

说明:

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

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

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

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

【例7.13】

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

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

我要反馈