|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include<stdio.h>
- int a[3] ;
- int main( ){
- void f1( ) ;
- void f2( ) ;
- void print( ) ;
- f1( ) ;
- print( ) ;
- f2( ) ;
- print( ) ;
- return 0 ;
- }
- void f1( ){
- int i ;
- for ( i = 0 ; i < 3 ; i++ )
- a[i] = i ;
- }
- void f2( ){
- int i ,a[3] ;
- for ( i = 0 ; i < 3 ; i++ )
- a[i] = i ;
- }
- void print( ){
- int i ;
- for ( i = 0 ; i < 3 ; i++ )
- printf( "%3d" , a[i] ) ;
- }
复制代码
这个题没有给函数传值 也没有return 他是怎么做到的数组a里面还有值的 然后print()函数输出a数组 然后f2函数里面数组a又重新赋值一遍的
运行结果是 0 1 2 0 1 2
本帖最后由 jackz007 于 2020-11-22 21:21 编辑
- #include<stdio.h>
- int a[3] ; // a[] 是全局变量
- . . . . . .
- void f1( ){
- . . . . . .
- a[i] = i ; // 为全局变量 a[] 赋值
- void f2( ){
- int i , a[3] ; // 在函数中定义 a[] 为局部变量,与同名全局变量无关
- . . . . . .
- a[i] = i ; // 为局部变量 a[] 赋值
- void print( ){
- . . . . . .
- printf( "%3d" , a[i] ) ; // 打印全局变量的数值
复制代码
main() 中调用 f1() 的时候会为全局变量 a[] 赋值,然后,在调用 print() 的时候,会把全局变量 a[] 的内容打印出来。又由于调用了 2 次 print() ,所以,a[] 的内容被连续打印了 2 次。
|
|