在一个函数内的复合语句中定义的变量可以在本函数范围内有效,这句话是否正确?为什么?
问题描述:
在一个函数内的复合语句中定义的变量可以在本函数范围内有效,这句话是否正确?为什么?
答
错.
定义变量可能有三种情况:
(1)在函数的开头定义:
(2)在函数内的复合语句内定义.
(3)在函数的外部定义.
在一个函数内部定义的变量只在本函数范围内有效,也就是说只有在本函数内才能引用它们,在此函数以外是不能使用这些变量的.在复合语句内定义的变量只在本复合语句范围内有效,只有在本复合语句内才能引用它们.在该复合语句以外是不能使用这些变量的.以上这些成为"局部变量".
程序的编译单位是源程序文件,一个源文件可以包含一个或若干个函数.在函数内定义的变量是局部变量,而在函数之外定义的变量称为外部变量,外部变量是全局变量(也称全程变量).全局变量可以为本文件中其他函数所共用.它的有效范围为从定义变量的位置开始到本源文件结束.