注册 登录
编程论坛 C++教室

【求助】请问下面的程序的输出结果是什么?

renmingjiang 发布于 2008-04-11 18:12, 540 次点击
#include "iostream.h"
void main()
{
    void change(int m,int n,int *q);
    int i=0,j=5,temp=10;
    int *p;
    p=&temp;
    cout<<*p<<endl;
    change(i,j,p);
    cout<<*p<<endl;
}
void change(int m,int n,int *q)
{
    if(m<n)
    {
        change(m++,n--,q);
         *q=m;
       cout<<*q<<endl;
    }
}
2 回复
#2
lucky_boy2008-04-11 19:21
10
我不知道你这程序想要实现什么,但它有错误:死循环
你的递归调用change(m++,n--,q);中形参m,n的值一直没变
程序运行时,识别了这个死循环,并自动将其终止
所以你的程序只实现了第一个cout<<*p<<endl;语句
换成change(++m,--n,q);
或许能实现你想要的效果
#3
renmingjiang2008-04-12 21:35
回复 2# 的帖子
非常感谢,此程序我只是用它来作为一个模板,看哈子情况,因为在做题的时候遇到相同结构的题目,真是一语惊醒梦中人啊!
1