第8章第8节 ③局部变量与全局变量同名时的处理 局部变量优先—同一文件中,全局变量与局部变量同名,则在局部 变量的作用范围内,全局变量不起作用。 例816 int a=3, b=5 a,b为全局变量 max(int a, int b) Rint c, a,b,c为局部变量 c=a>b?a: b: return c, man fint a; a=8: b为全局变量(值为5) printf(“%d”,max(a,b); a为局部变量(值为8)
第8章第8节 ③ 局部变量与全局变量同名时的处理 ——同一文件中,全局变量与局部变量同名,则在局部 变量的作用范围内,全局变量不起作用。 例8.16 int a=3,b=5; max(int a, int b) {int c; c=a>b?a:b; return c; } main() {int a; a=8; printf(“%d”,max(a,b)); } a,b为全局变量 a,b,c为局部变量 b为全局变量(值为5) a为局部变量 (值为8) 局部变量优先
例8162 第8章第8节 int i=l 内为全局变量 main fint i,j; i=reset; for(j=1j<=2:j++) i为局部变量 { printf(“%d,%dn”,j); printi(%dn”,next(); print“%dm”,new();} 结果 int reset i为全局变量 freturn (i; 3 int next(int j) i为全局变量 freturn(j=i++);) 为局部变量 1,2 int new(int i) 2 fint j=10; return(i=j+=i) i为局部变量
例8.16-2 int i=1; main() {int i,j; i=reset(); for(j=1;j<=2;j++) {printf(“%d,%d\n”,i,j); printf(“%d\n”,next(i)); printf(“%d\n”,new(i));} } int reset() {return (i);} int next(int j) {return(j=i++); } int new(int i) {int j=10; return(i=j+=i); } i为全局变量 i,j 为局部变量 i为全局变量 j为局部变量 i,j 为局部变量 结果: 1,1 1 11 1,2 2 11 第8章第8节 i为全局变量