当前位置:编程学习 > C/C++ >>

win-tc的问题

c语 用户出入任意两个数 求两个数之间所有数的和 用函数做 我的代码是 int hh(int u,int l,int w,int n) { for(w=u;w<=l;w++) { n=n+w; } } main() { int a,b,c,d=0; scanf("%d%d",&a,&b); hh(a,b,c,d); printf("%d",d); getch(); } 为什么 执行的时候是0啊
答案:你是想在 hh函数里 n加上l-u个w吧
  
在这里是值传参    
你的a b c d 把值传给 u l w n后就与函数里的形参没关系了  
 函数计算完 结果是在n里 ,不会赋给d的 ,而d 的值依然是初始化时的0
而n是hh函数里的变量  hh函数执行完了  这个变量就销毁了
如果要实参和形参相关联 ,就用 指针 或引用
用指针:
  int hh(int* u,int* l,int* w,int* n)
{

    for(*w=*u;*w<=*l;*w++)
    {
        *n=*n+*w;

    }

}
调用的时候 要取变量的地址hh(&a,&b,&c,&d);。

用 引用:
int hh(int& u,int& l,int& w,int& n)
用引用 写起来简单写  只要在函数声明 定义时 写成引用 ,在调用的地方不要变。
这样 形参和实参就关联起来了   函数里面变化会反映到函数外面了

上一个:这个类怎么理解
下一个:初学引体向上。。。求解

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,