局部变量和全局变量 局部变量 在一个函数内部定义的变量,它只在本函 数内部范围内有效在函数外部无法使用 这些变量 例子 →# include #include void test(int x, int y)
局部变量和全局变量 • 局部变量 在一个函数内部定义的变量,它只在本函 数内部范围内有效,在函数外部无法使用 这些变量 例子: #include #include void test(int x,int y);
局部变量和全局变量(程序_) o void test(int x, int y) int a=ob=1 printf("n) printf("test函数中a-%d,b-%dmn",a,b); printf("test函数中变量a的内存地址为: %dn",&a) printf("test函数中变量b的内存地址为: %dn, &b) printf("n; printf("test函数中x-%d,y=%dmn",x,y
局部变量和全局变量(程序一) void test(int x,int y) { int a=0,b=1; printf("\n"); printf("test函数中 a=%d, b=%d\n",a,b); printf("test函数中 变量a的内存地址为: %d\n",&a); printf("test函数中 变量b的内存地址为: %d\n",&b); printf("\n"); printf("test函数中 x=%d, y=%d\n",x,y); }
局部变量和全局变量(程序_) main( e int a=10, b=20 prnt"main函数中a=%d,b-%dn"ab) printf("mai函数中变量的内存地址为: %dn",&a); printf("main函数中变量b的内存地址为: dn",&b); test(a, b) → system(" pause")
局部变量和全局变量(程序一) main() { int a=10,b=20; printf("main函数中 a=%d, b=%d\n",a,b); printf("main函数中 变量a的内存地址为: %d\n",&a); printf("main函数中 变量b的内存地址为: %d\n",&b); test(a,b); system("pause"); }
局部变量和全局变量 说明 1在上程序中,主函数中定义的变量ab,只 在主函数中有效不能用于main函数的外 部,同时main函数也不能够使用其它函 数中定义的变量。 2在main函数中和test函数中都使用了变 量名ab。说明在不同函数中可以使用相 同的变量名,它们代表不同的对象,在 内存中的地址也不一样
局部变量和全局变量 说明: 1.在上程序中,主函数中定义的变量a,b,只 在主函数中有效,不能用于main函数的外 部,同时,main函数也不能够使用其它函 数中定义的变量。 2.在main函数中和test函数中都使用了变 量名a,b。说明在不同函数中可以使用相 同的变量名,它们代表不同的对象,在 内存中的地址也不一样
局部变量和全局变量 3形式参数也是局部变量,例如上述程序 中,参数xy只在tst函数中有效,其他函数 不能调用(包括main函数) 4在一个函数内部可以在复合语句中定 义变量这些变量只在本复合语句中有效, 出了复合语句的范围,则该变量无效 例如:
局部变量和全局变量 3.形式参数也是局部变量,例如上述程序 中,参数x,y只在test函数中有效,其他函数 不能调用(包括main函数) 4.在一个函数内部,可以在复合语句中定 义变量,这些变量只在本复合语句中有效, 出了复合语句的范围,则该变量无效 例如:
局部变量和全局变量(程序二) #include ●# include main( inta=10,b=20,i=0; printi("复合语句外a-%d,b=%dn"a,b) printf("n") int 1=100 printi("复合语句中i=%dn",i) pint("合语句中i的地址为:%dn:kn) print("复合语句中a-%d,b-%dln"ab);
局部变量和全局变量(程序二) #include #include main() { int a=10,b=20,i=0; printf("复合语句外 a=%d, b=%d\n",a,b); printf("\n"); { int i=100; printf("复合语句中 i = %d\n",i); printf("复合语句中 i 的地址为: %d\n",&i); printf("复合语句中 a=%d, b=%d\n",a,b); }
局部变量和全局变量(程序二) printf("n") pint("复合语句外i=%dmn",i printf("复合语句外i的地址为: %odn, &i) system(pause); }
局部变量和全局变量(程序二) printf("\n"); printf("复合语句外 i = %d\n",i); printf("复合语句外 i 的地址为: %d\n",&i); system("pause"); }
局部变量和全局变量(程序二) 注意 在上述程序中main函数中定义的作 用范围虽然是整个main函数,但复合语句 中也定义了变量所以复合语句内的变 量Ⅰ和main函数中定义的是不同的变量 如果复合函数中没有定义变量i,则 main函数中定义的变量在复合函数中有 效
局部变量和全局变量(程序二) • 注意: 在上述程序中,main函数中定义的i作 用范围虽然是整个main函数,但复合语句 中也定义了变量I,所以复合语句内的变 量I和main函数中定义的i是不同的变量. 如果复合函数中没有定义变量i,则 main函数中定义的变量在复合函数中有 效
局部变量和全局变量 。全局变量 个源文件中包含一个或若干个变量, 在函数外定义的变量称为外部变量,外 部变量是全局变量(全程变量) 外部变量的作用范围可以从定义变量的 位置开始到本源文件结束 如果全局变量和局部变量同名,则在 局部变量的范围内全局变量的值无效
局部变量和全局变量 • 全局变量 一个源文件中包含一个或若干个变量, 在函数外定义的变量称为外部变量,外 部变量是全局变量(全程变量) 外部变量的作用范围可以从定义变量的 位置开始到本源文件结束。 如果全局变量和局部变量同名,则在 局部变量的范围内全局变量的值无效
局部变量和全局变量 #include ●# include ● int test l=0 void fIo printi("在函数中变量test的值为:%dn", testl) pitf("在f函数中变量test的地址为:%dn"&test1) printf("n") int test2=1oo ● void f20
局部变量和全局变量 #include #include int test1=0; void f1() { printf("在f1函数中变量 test1的值为: %d\n",test1); printf("在f1函数中变量 test1的地址为: %d\n",&test1); printf("\n"); } int test2=100; void f2() {