【问题标题】:about usage of "static", really basic关于“静态”的用法,非常基础
【发布时间】:2015-05-13 07:41:12
【问题描述】:
#include<stdio.h>
int a;
int fun(int b)
{
   static int c=3;
   return ((++a)+(++b)+(++c));
}
Main()
{
   int i,a=2;
   for(i=0;i<2;i++)
      printf("%5d",fun(a));
}

我认为答案是 1012 但没有补偿

我想知道进度

【问题讨论】:

  • Main() 甚至不会编译。 “我想知道进度” 进度?什么?
  • 使用一些在线编译器,如ideone.com 并自行检查
  • 你错了。一个小提示:main中的a和全局的a不一样。
  • @LPs 也许你犯了和 OP 一样的错误。
  • @Dayal 和 Frank 不,我必须在我他妈的键盘上按正确的数字 :)。无论如何,您的代码无法编译。至少把Main改成void main (void)

标签: c static


【解决方案1】:

回应Frank Hao的评论

全局int a被初始化为0。

for i = 0;
first call fun(2)
{
return ((1)+(3)+(4));
}

for i = 1;
second call fun(2)
{
return ((2)+(3)+(5));
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-02
    • 1970-01-01
    • 2017-03-30
    • 1970-01-01
    • 2021-05-04
    • 2012-09-07
    • 2016-04-21
    • 1970-01-01
    相关资源
    最近更新 更多