函数题
#include<stdio.h>inta ;
intmain( ){
voidf1( ) ;
voidf2( ) ;
voidprint( ) ;
f1( ) ;
print( ) ;
f2( ) ;
print( ) ;
return 0 ;
}
voidf1( ){
inti ;
for ( i = 0 ; i < 3 ; i++ )
a = i ;
}
voidf2( ){
inti ,a ;
for ( i = 0 ; i < 3 ; i++ )
a = i ;
}
voidprint( ){
inti ;
for ( i = 0 ; i < 3 ; i++ )
printf( "%3d" , a ) ;
}
这个题没有给函数传值 也没有return 他是怎么做到的数组a里面还有值的 然后print()函数输出a数组 然后f2函数里面数组a又重新赋值一遍的
运行结果是 012012 本帖最后由 jackz007 于 2020-11-22 21:21 编辑
#include<stdio.h>
inta ; // a[] 是全局变量
. . . . . .
voidf1( ){
. . . . . .
a = i ; // 为全局变量 a[] 赋值
voidf2( ){
inti , a ; // 在函数中定义 a[] 为局部变量,与同名全局变量无关
. . . . . .
a = i ; // 为局部变量 a[] 赋值
voidprint( ){
. . . . . .
printf( "%3d" , a ) ; // 打印全局变量的数值
main() 中调用 f1() 的时候会为全局变量 a[] 赋值,然后,在调用 print() 的时候,会把全局变量 a[] 的内容打印出来。又由于调用了 2 次 print() ,所以,a[] 的内容被连续打印了 2 次。 jackz007 发表于 2020-11-22 21:09
main() 中调用 f1() 的时候会为全局变量 a[] 赋值,然后,在调用 print() 的时候,会把全局变量...
这个赋值和return有啥区别 我有点搞不清 我记得他那个函数有个变量用完就释放了 jackz007 发表于 2020-11-22 21:09
main() 中调用 f1() 的时候会为全局变量 a[] 赋值,然后,在调用 print() 的时候,会把全局变量...
不知道你懂不懂我的意思{:10_247:}{:10_266:}说的有点不清楚 癞蛤蟆丶ccc 发表于 2020-11-22 22:32
不知道你懂不懂我的意思说的有点不清楚
main() 中从未引用任何函数的返回值,其它函数也一样,和任何 return 都没有关系。
页:
[1]