鱼C论坛

 找回密码
 立即注册
查看: 733|回复: 4

[已解决]函数题

[复制链接]
发表于 2020-11-22 20:37:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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
最佳答案
2020-11-22 21:09:31
本帖最后由 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 次。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-11-22 21:09:31 | 显示全部楼层    本楼为最佳答案   
本帖最后由 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 次。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-22 22:31:23 | 显示全部楼层
jackz007 发表于 2020-11-22 21:09
main() 中调用 f1() 的时候会为全局变量 a[] 赋值,然后,在调用 print() 的时候,会把全局变量  ...

这个赋值和return有啥区别 我有点搞不清 我记得他那个函数有个变量用完就释放了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-22 22:32:58 | 显示全部楼层
jackz007 发表于 2020-11-22 21:09
main() 中调用 f1() 的时候会为全局变量 a[] 赋值,然后,在调用 print() 的时候,会把全局变量  ...

不知道你懂不懂我的意思说的有点不清楚
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-22 22:36:56 | 显示全部楼层
癞蛤蟆丶ccc 发表于 2020-11-22 22:32
不知道你懂不懂我的意思说的有点不清楚

        main() 中从未引用任何函数的返回值,其它函数也一样,和任何 return 都没有关系。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-12 13:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表