|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
C++论坛
→
『 C++教室 』
→ 一个指针的问题,帮忙解答一下
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
529
人关注过本帖
标题:
一个指针的问题,帮忙解答一下
只看楼主
加入收藏
luguolian
等 级:
新手上路
帖 子:12
专家分:0
注 册:2013-4-15
结帖率:
100%
楼主
收藏
已结贴
√
问题点数:10 回复次数:4
一个指针的问题,帮忙解答一下
int i=10, j=20, k=30, a, b, c, *p;
p=&i;
a=(*p)++; b=*(p++); c=*p;
printf("%5d,%5d,%5d,%5d\n",i,a,b,c);
结果为什么是
11
10
11
1245120
2013-08-17 18:32
举报帖子
使用道具
赠送鲜花
yuccn
来 自:何方
等 级:
版主
威 望:
167
帖 子:6815
专家分:42393
注 册:2010-12-16
第
2
楼
收藏
得分:8
这个你的了解堆栈内存结构才行
p=&i;
a=(*p)++; 这个等价于
a=(*p);(*p)++; ,也就是a = 10;(*p) = 11了,也就是i = 11;
b=*(p++);等价于
b = *p; p++;
也就是b = 11;p指向上一个内存单元。这个内存单元不是你分配的,所以里面的数据为未知了。
所以c=*p; c的值是一个不确定的。
也就是i = 11,a=10,b=11,c=不确定
我这边反汇编是
int i=10, j=20, k=30, a, b, c, *p;
00413D8E
mov
dword ptr [i],0Ah
00413D95
mov
dword ptr [j],14h
00413D9C
mov
dword ptr [k],1Eh
p=&i;
00413DA3
lea
eax,[i]
00413DA6
mov
dword ptr [p],eax
a=(*p)++;
00413DA9
mov
eax,dword ptr [p]
00413DAC
mov
ecx,dword ptr [eax]
00413DAE
mov
dword ptr [a],ecx
00413DB1
mov
edx,dword ptr [p]
00413DB4
mov
eax,dword ptr [edx]
00413DB6
add
eax,1
00413DB9
mov
ecx,dword ptr [p]
00413DBC
mov
dword ptr [ecx],eax
b=*(p++);
00413DBE
mov
eax,dword ptr [p]
00413DC1
mov
ecx,dword ptr [eax]
00413DC3
mov
dword ptr [b],ecx
00413DC6
mov
edx,dword ptr [p]
00413DC9
add
edx,4
00413DCC
mov
dword ptr [p],edx
c=*p;
00413DCF
mov
eax,dword ptr [p]
00413DD2
mov
ecx,dword ptr [eax]
00413DD4
mov
dword ptr [c],ecx
查看各值
图片附件: 游客没有浏览图片的权限,请
登录
或
注册
我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2013-08-17 21:49
举报帖子
使用道具
赠送鲜花
liu122430950
等 级:
业余侠客
威 望:
1
帖 子:45
专家分:211
注 册:2010-5-30
第
3
楼
收藏
得分:2
p是指向i的指针,
*p
是对p的解引用即p的值是10 ,是因为i++是先赋值再对i加1,所以i=11,a=10,p仍指向i;
同理b的值是*p,即b=11,之后指针p加1,而非指针指向的对象加1,即指针移动了不指向i了,所以b=11,p不指向i了
而c的值是对p的解引用,所以值是个不确定数。
2013-08-17 21:50
举报帖子
使用道具
赠送鲜花
luguolian
等 级:
新手上路
帖 子:12
专家分:0
注 册:2013-4-15
第
4
楼
收藏
得分:0
回复 2楼 yuccn
你的解答好详细,谢谢你。以后我会常去你的博客看看的
2013-08-21 09:29
举报帖子
使用道具
赠送鲜花
yuccn
来 自:何方
等 级:
版主
威 望:
167
帖 子:6815
专家分:42393
注 册:2010-12-16
第
5
楼
收藏
得分:0
回复 4楼 luguolian
我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2013-08-21 12:16
举报帖子
使用道具
赠送鲜花
5
1/1页
1
快速回复:
一个指针的问题,帮忙解答一下
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.063833 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved