标题:两次输出指针为何不同呢?
取消只看楼主
lixang
Rank: 1
等 级:新手上路
帖 子:231
专家分:0
注 册:2006-7-15
 问题点数:0 回复次数:2 
两次输出指针为何不同呢?

#include <iostream.h>

int *getint(char *str)//指针函数
{
int value=100;
cout<<str<<endl;
return &value;//warning :将局部变量返回是不妥的!

}

void somefn(char *str)
{
int a=40;
cout<<str<<endl;
}
void main()
{
int *pr=getint("input a value:"); //赋值取自返回的指针值。
cout<<*pr<<endl; //第一次输出*pr
somefn("it's uncertain:"); //这个函数调用后----------
cout<<*pr<<endl; //第二次输出*pr
//为何两次输出 的*pr不同呢?
}

搜索更多相关主题的帖子: 指针 输出 
2006-08-10 16:51
lixang
Rank: 1
等 级:新手上路
帖 子:231
专家分:0
注 册:2006-7-15
得分:0 

请问为何再程序最后要加一个加上"delete pr" ???
如果没有delete pr;也可以通过并且输出相同,
那么加上"delete pr"是否画蛇添足了呢????

[此贴子已经被作者于2006-8-11 11:23:14编辑过]

2006-08-11 11:17
lixang
Rank: 1
等 级:新手上路
帖 子:231
专家分:0
注 册:2006-7-15
得分:0 

两次输出指针为何不同呢?#include <iostream.h>

int *getint(char *str)//指针函数
{
int value=100;
cout<<str<<endl;
return &value;//warning :将局部变量返回是不妥的!

}

void somefn(char *STR) //我把原来的str该为STR后以避免它与int *getint(char *str)函数中str同名
//但还是不行两次输出*pr 不同?????
{
int a=40;
cout<<STR<<endl;
}
void main()
{
int *pr=getint("input a value:"); //赋值取自返回的指针值。
cout<<*pr<<endl; //第一次输出*pr
somefn("it's uncertain:"); //这个函数调用后----------
cout<<*pr<<endl; //第二次输出*pr
//为何两次输出 的*pr不同呢?
}

2006-08-11 21:58



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-83258-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.203872 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved