c++ 中我的一个子函数中有while循环,想在结束的时候,把里面的一个变量返回出来

问题是,return语句在while括号的外面导致了,无法识别这个变量,高手帮帮忙如何解决呢?#include<iostream>classListEntry{char*... 问题是,return语句在while括号的外面导致了,无法识别这个变量,高手帮帮忙如何解决呢?
#include <iostream>
class ListEntry{
char* monkey;
ListEntry* firstaddress;
public:

ListEntry(char *);
void display()
{
std::cout<<monkey<<std::endl;
}
void addentry(ListEntry& l)
{l.firstaddress=this;}
};

ListEntry :: ListEntry(char* m)
{
monkey=new char[strlen(m)];
strcpy(monkey,m);
}

ListEntry* putin(ListEntry* );

void main(){
char na[]="yu";
ListEntry re(na);
ListEntry* uu='\0';
re.display();
ListEntry* list=putin(uu);
while(list !=0)
list++->display();
}

ListEntry* putin(ListEntry* mm)
{
ListEntry * list='\0';
while(1)
{
std::cout<<"Enter name series"<<std::endl;
char name[10];
std::cin>>name;
if(strcmp(name, "end") == 0)
break;
ListEntry * list=new ListEntry(name);
if(mm !=0)
{
mm->addentry(*list);
mm=list;
}
}
return list;
}
这个是程序的代码,单步检验发现输入end,返回值为0,如何才能打印list链表呢?
展开
 我来答
丿陌尕熙灬C6
2012-10-06
知道答主
回答量:23
采纳率:0%
帮助的人:15.8万
展开全部
把while循环里的变量移到括号外面,在子函数开始就定义
2010huolong
2012-10-06 · 超过36用户采纳过TA的回答
知道小有建树答主
回答量:102
采纳率:0%
帮助的人:63.5万
展开全部
外边,如果放在里边就谈不上所谓的循环了,因为语句一执行return 就跳出函数
追问
问题就是这个啊,我做的是一个循环输入,直到输入end跳出循环

如果把返回放在while里面那就只能返回第一个输入的东西了
追答
在while语句之前定义你的变量,就变量的作用域也就高了,就不会出现变量为定义的错误了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
呱皮帅哥
2012-10-07
知道答主
回答量:39
采纳率:0%
帮助的人:25.1万
展开全部
不要在while里定义变量,在它外面定义。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
raolinxiang
2012-10-07
知道答主
回答量:5
采纳率:0%
帮助的人:6282
展开全部
把变量声明到while循环外
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wk618520hrj
2012-10-07 · 超过32用户采纳过TA的回答
知道答主
回答量:208
采纳率:0%
帮助的人:107万
展开全部
你的目的是打印这个list,可是没有数据的存储怎么输出啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式