7.5作用域标识符a共出现了3次。大圆A中的inta作用范围是整个程序;小圆B、D中的int a分属B、D范围,而且都屏蔽了大圆A中的a,小圆c可以直接访问大圆中的inta;小圆B不能访问小圆D中chard,同样,小圆D不能访问小圆B中的char b。·B、C、D都能访问大圆A中的char c、int sum(int n);·小圆B、C、D可以理解成是3个函数或复合语句。在有些教材中用“块”来表示一段相对独立的代码
7.5 作用域 标识符a共出现了3次。大圆A中的int a作用范围是整个程序; 小圆B、D中的int a分属B、D范围,而且都屏蔽了大圆A中的a, 小圆C可以直接访问大圆中的int a; 小圆B不能访问小圆D中char d,同样,小圆D不能访问小圆B 中的char b。 B、C、D都能访问大圆A中的char c、int sum(int n); 小圆B、C、D可以理解成是3个函数或复合语句。在有些教材 中用“块”来表示一段相对独立的代码
【例7-3】作用域演示int a=10;static int add(int a, int b) ( return a+b; }mainO int a,b,c;inti,s = o;int sub(int,int);extern int d;a=20;c=10;(int a;int c=20;b=10; a = add(b,c);n)printf("a = %d,b = %d,c = %d)n",a,b,c);for(i=1; i<=100; i++) {s = s + i;)for(i=1; i<=100; i++) (s = sub(s, i);)printf("s = %dn",s); printf("d = %d n",d);extern int sub(inta, int b) return a-b: L口Xc*D:AClc7 31Debuglc73.exe=20.b=10.c=10一int d = 888; int e = 999;0=888L
【例7-3】作用域演示 int a=10; static int add(int a, int b) { return a+b; } main() { int a,b,c;inti,s = 0;int sub(int,int);extern int d;a=20;c=10; {int a; int c=20; b=10; a = add(b,c);n} printf("a = %d,b = %d,c = %d\n",a,b,c); for(i=1; i<=100; i++) {s = s + i;} for(i=1; i<=100; i++) {s = sub(s, i);} printf("s = %d\n",s); printf("d = %d\n" ,d); } extern int sub(int a, int b) { return a-b; } int d = 888; int e = 999;