void fun2(char a, char b)
{ printf("%c%c", a, b);
}
char a = 'A', b = 'B';
void fun1()
{ a = 'C'; b = 'D';
}
main()
{ fun1(); printf("%c%c", a, b); fun2('E', 'F');
}
结果怎么是CDEF呢。
char a = 'A', b = 'B';a,b为外部变量,该声明以下的函数可直接调用它,若是某函数内的变量与外部变量相同,则外部变量被屏壁(外部变量对函数不可见);若是该声明char a = 'A', b = 'B';之上的函数想调用变量a,b,则必须在函数体内声明 extern a,b;例如:
#include<stdio.h.
int main()
{ extern a,b; printf("a=%d,b=%d\n"); return 0;
}
int a=10,b=20;
void fun2(char a, char b)
{ printf("%c%c", a, b);
}
char a = 'A', b = 'B';
void fun1()
{ a = 'C'; b = 'D';
}
main()
{ a = 'C'; b = 'D' // fun1(); printf("%c%c", a, b); printf("%c%c", 'E', 'F');//fun2('E', 'F');
}
你把调用的函数的语句换成基本语句就明白了