首页 > 用户发贴区 > 编程问题提问区 > 请教函数调用的问题
2006
09-03

请教函数调用的问题

#include<stdio.h>
func( int a, int b)
{ int c;
c=a+b;
return c;
}
main()
{ int x=6, y=7, z=8, r;
r=func( x–,y==,x+y),z–);
printf(“%d\n”,r);
}
上面程序的输出结果是
A) 11            B) 20             C) 21             D) 31


感觉这个题目有问题:


func( int a, int b)
{ int c;
c=a+b;
return c;
}
函数调用结束后,C已经不存在.


请教函数调用的问题》有 2 条评论

  1. xstar 说:

    没问题的.
    这个是返回值而不是返回地址.c在函数结束的时候已经销毁了,但值已经复制到返回的地址空间里了.

    如果你这样返回
    return &c;
    就错误了.

  2. limiya 说:

    请问:主函数中

    r=func( x–,y==,x+y),z–);
    是什么意思?

留下一个回复