|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 关于指针的一个问题?
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
676
人关注过本帖
标题:
关于指针的一个问题?
只看楼主
加入收藏
maxam0128
等 级:
论坛游民
帖 子:37
专家分:10
注 册:2011-10-9
结帖率:
75%
楼主
收藏
已结贴
√
问题点数:20 回复次数:6
关于指针的一个问题?
#include<stdio.h>
int *fun( void )
{
int a=100;
return &a;
}
int *fun1( void )
{
int b=200;
return &b;
}
int main()
{
int* p;
int* p1;
int aa, bb;
p=fun();
p1=fun1();
aa=*p;
bb=*p1;
printf("%d,%d\n",aa,bb);
}
为什么他们输出都是200?
搜索更多相关主题的帖子:
include
return
2011-10-12 21:10
举报帖子
使用道具
赠送鲜花
ileelsai
等 级:
职业侠客
帖 子:87
专家分:303
注 册:2011-9-25
第
2
楼
收藏
得分:5
蛋疼。。。。你就这么用指针
两次分配的都是同一个地址。。。。。。。。。。。。。。。。。。。。。。。
2011-10-12 21:21
举报帖子
使用道具
赠送鲜花
NeXT__00
等 级:
论坛游民
帖 子:51
专家分:98
注 册:2011-9-5
第
3
楼
收藏
得分:5
因为fun()和fun1()函数中的a,b局部变量的地址相同。(调用有先后,所以可以)
2011-10-12 21:22
举报帖子
使用道具
赠送鲜花
embed_xuel
等 级:
贵宾
威 望:
58
帖 子:3845
专家分:11385
注 册:2011-9-13
第
4
楼
收藏
得分:5
回复 楼主 maxam0128
代码是错的,打印200跟操作系统或者编译器有关
总有那身价贱的人给作业贴回复完整的代码
2011-10-12 21:28
举报帖子
使用道具
赠送鲜花
maxam0128
等 级:
论坛游民
帖 子:37
专家分:10
注 册:2011-10-9
第
5
楼
收藏
得分:0
回复 2楼 ileelsai
哦,明白了...3q
2011-10-12 22:02
举报帖子
使用道具
赠送鲜花
embed_xuel
等 级:
贵宾
威 望:
58
帖 子:3845
专家分:11385
注 册:2011-9-13
第
6
楼
收藏
得分:0
int *fun( void )
{
int a=100;
return &a;
}
这个函数内部定义了变量a,a在函数的栈上,函数的返回值指向的就是栈上的a的地址,但是函数返回后函数的栈就被撤销了,返回指针指向的就是非法的地址,所以会出错,严重的错误。
总有那身价贱的人给作业贴回复完整的代码
2011-10-12 22:16
举报帖子
使用道具
赠送鲜花
劣质数轴
等 级:
论坛游侠
帖 子:89
专家分:163
注 册:2010-11-19
第
7
楼
收藏
得分:5
函数不应返回指向局部变量的指针
如果要返回指向局部变量,要么用static定义静态变量,要么就是用malloc。
2011-10-15 02:04
举报帖子
使用道具
赠送鲜花
7
1/1页
1
快速回复:
关于指针的一个问题?
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.015846 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved