4.11局部变量和全局变量 、 局部变量 定义:在一个函数内部定义的变量是内部变 量,它只在本函数范围内有效。同样,在复合 语句中定义的变量只在本复合语句范围有效。 例如: float f1(int a) int b,ci a有效
4.11 局部变量和全局变量 一、局部变量 定义:在一个函数内部定义的变量是内部变 量,它只在本函数范围内有效。同样,在复合 语句中定义的变量只在本复合语句范围有效。 例如: float f1(int a) { int b,c; ┆ } b、c有效 a有效
4.11局部变量和金局变量 char f2(int x,int y) int i,j; i、有效 x、y有效 int main() int m,n; int p,q; m、n有效 p、 q在复合 语句中有效
4.11 局部变量和全局变量 char f2(int x, int y) { int i,j; ┆ } int main( ) { int m,n; ┆ { int p,q; ┆ } } i、j有效 x、y有效 p、q在复合 语句中有效 m、n有效
4.11局部变量和金局变量 说明: (1)主函数main中定义的变量也只在主函数 中有效。 (2)不同函数中可以使用同名的变量,它们代 表不同的对象,互不干扰。 (3)可以在一个函数内的复合语句中定义变 量,这些变量只在本复合语句中有效。 (4)形式参数也是局部变量。 (5)在函数声明中出现的参数名,其作用范 围只在本行的括号内
4.11 局部变量和全局变量 说明: (1) 主函数main中定义的变量也只在主函数 中有效。 (2) 不同函数中可以使用同名的变量,它们代 表不同的对象,互不干扰。 (3) 可以在一个函数内的复合语句中定义变 量,这些变量只在本复合语句中有效。 (4) 形式参数也是局部变量。 (5) 在函数声明中出现的参数名,其作用范 围只在本行的括号内
4.11局部变量和金局变量 例如: int max(int a,int b) int max(intx,inty) cout<<x<<y<<endl II合法 cout<<a<<b<<endl; //非法 }
4.11 局部变量和全局变量 例如: int max(int a,int b); ┆ int max(int x,int y) { cout<<x<<y<<endl; //合法 cout<<a<<b<<endl; //非法 }
4.11局部变量和金局变量 #include using namespace std; int main() {inta=1,b=2,c=3; ++a; c+=++b; int b=4,c; c=b*3; a+=cj cout<<"first:"<<a<<b<<c a+=cj cout<<"second:"<<a<<b<<cj cout<<"third:"<<a<<b<<c
4.11 局部变量和全局变量 #include using namespace std; int main( ) { int a=1,b=2,c=3; ++a; c+=++b; { int b=4,c; c=b*3; a+=c; cout<<“first:”<<a<< b<<c; a+=c; cout<<“second:”<<a<<b<<c; } cout<<“third:”<<a<<b<<c; }
4.1局部变量和金局变量 二、全局变量 定义:在函数内定义的变量是局部变量,而 在函数之外定义的变量是外部变量,称为全局 变量(也称全程变量)。全局变量的有效范围为 从定义变量的位置开始到本源文件结束。 例如:
4.11 局部变量和全局变量 二、全局变量 定义:在函数内定义的变量是局部变量,而 在函数之外定义的变量是外部变量,称为全局 变量(也称全程变量)。全局变量的有效范围为 从定义变量的位置开始到本源文件结束。 例如:
4.11局部变量和金局变量 int p=1,q=5; float f1(a) int a; int b,c; } char c1,c2; char f2(intx,inty) 全局变量p、 int i,j; q的作用范围 全局变量c1、 main ( c2的作用范围 int m,n;
4.11 局部变量和全局变量 int p=1,q=5; float f1(a) int a; { int b,c; ┆ } char c1,c2; char f2 (int x, int y) { int i,j; ┆ } main ( ) { int m,n; ┆ } 全局变量c1、 c2的作用范围 全局变量p、 q的作用范围
41局部变量和金局变量 说明: (1)设全局变量的作用是增加函数间数据联系 的渠道。 (2)建议不在必要时不要使用全局变量,因为: ①全局变量在程序的全部执行过程中都占用存储单 元,而不是仅在需要时才开辟单元。 ②它使函数的通用性降低了,因为在执行函数时要 受到外部变量的影响。 ③使用全局变量过多,会降低程序的清晰性。 (3)如果在同一个源文件中,全局变量与局部 变量同名,则在局部变量的作用范围内,全局 变量被屏蔽,即它不起作用
4.11 局部变量和全局变量 说明: (1) 设全局变量的作用是增加函数间数据联系 的渠道。 (2) 建议不在必要时不要使用全局变量,因为: ① 全局变量在程序的全部执行过程中都占用存储单 元,而不是仅在需要时才开辟单元。 ② 它使函数的通用性降低了,因为在执行函数时要 受到外部变量的影响。 ③ 使用全局变量过多,会降低程序的清晰性。 (3) 如果在同一个源文件中,全局变量与局部 变量同名,则在局部变量的作用范围内,全局 变量被屏蔽,即它不起作用
1、写出运行结果: #include using namespace std; char name[10]="main"; int main( cout<<name<<endl; func1(); cout<<name<<endl; func2() cout<<name<<endl;return 0; void func1() strcpy(name,"func1"); void func2() char name[10] strcpy(name,"func2");}
1、写出运行结果: #include using namespace std; char name[10]=“main”; int main( ) {cout<<name<<endl; func1( ); cout<<name<<endl; func2( ); cout<<name<<endl; return 0; } void func1( ) { strcpy(name, “func1”); } void func2( ) { char name[10]; strcpy( name, “func2”); }
2、写出运行结果: #include using namespace std; intx=-8,y=100: int func(int a,int b) int y; y=x+a; X++ a++; cout<<b-<<-b<<endlj return(x+y+a);} int main() int m=2; y=func(m,x); cout<<x<<y<<m<<endl;return 0;}
2、写出运行结果: #include using namespace std; int x=-8, y=100; int func( int a, int b) { int y; y=x+a; x++; a++; cout<<b-<<-b<<endl; return( x+y+a); } int main( ) { int m=2; y=func(m, x); cout<< x<<y<<m<<endl;return 0; }