标题:一道关于指针的问题
只看楼主
LOVE燕
Rank: 2
等 级:论坛游民
帖 子:37
专家分:12
注 册:2012-11-14
结帖率:90.91%
已结贴  问题点数:20 回复次数:13 
一道关于指针的问题
#include"stdio.h"
void main()
{int idata[]={1,2,3,4,5,6};
 int *pInt;
 pInt=idata;
printf("%d %d %d %d \n",*pInt,*(++pInt),*++pInt,*(pInt--));
printf("%d %d\n",*pInt,*(idata+2));
}


为什么结果是3  3  2  1  
                           2  3


求解!!!
搜索更多相关主题的帖子: include void 
2013-01-10 21:44
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
得分:1 
你确定是3321?

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2013-01-10 22:03
不玩虚的
Rank: 9Rank: 9Rank: 9
来 自:四川
等 级:贵宾
威 望:10
帖 子:331
专家分:1301
注 册:2012-12-9
得分:1 
楼主说的结果是对的,表示c语言不明白,继续思考1

同学习......同进步....你帮我......我帮你.....上善若水.....
2013-01-10 22:18
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
得分:1 
又在问这种问题了。

My life is brilliant
2013-01-10 22:29
x_x
Rank: 2
等 级:论坛游民
帖 子:44
专家分:43
注 册:2012-10-16
得分:1 
printf("%d %d %d %d \n",*pInt,*(++pInt),*++pInt,*(pInt--));
这句。
和++i与i++的问题一样啊!!
回答是不知道!!
2013-01-10 22:40
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
得分:0 
哎,这是编译器的行为,或者叫未定义行为,C标准允许编译器自己决定的东西,我们没必要研究,研究它不如研究下自己的编译器,自加自减运算都是如此,宁可用i+=1,不然你的代码就没有了可移植性,换个机器,换个编译器就出问题了



一家之言,仅供参考

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2013-01-10 22:43
wangjialong
Rank: 2
等 级:论坛游民
帖 子:77
专家分:95
注 册:2012-11-8
得分:1 
正如lz版所说的那样,执行完第一个printf后*pInt的值肯定为2

新手发言,请多指教。
2013-01-10 22:58
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
得分:1 
又见月经贴,答案同 5楼。

真知灼见哪


[fly]存在即是合理[/fly]
2013-01-11 00:03
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
得分:1 
以下是引用yaobao在2013-1-10 22:43:58的发言:

哎,这是编译器的行为,或者叫未定义行为,C标准允许编译器自己决定的东西,我们没必要研究,研究它不如研究下自己的编译器,自加自减运算都是如此,宁可用i+=1,不然你的代码就没有了可移植性,换个机器,换个编译器就出问题了



一家之言,仅供参考



我很讨厌被问这种问题...
但是中国的教育似乎以提出这种钻牛角尖的问题为荣...
要是我手下有写这种代码的人,我第一反应是拉出去毙了...

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2013-01-11 09:06
chfen
Rank: 1
来 自:福州
等 级:新手上路
帖 子:3
专家分:1
注 册:2012-12-29
得分:1 
以下是引用yaobao在2013-1-10 22:43:58的发言:

哎,这是编译器的行为,或者叫未定义行为,C标准允许编译器自己决定的东西,我们没必要研究,研究它不如研究下自己的编译器,自加自减运算都是如此,宁可用i+=1,不然你的代码就没有了可移植性,换个机器,换个编译器就出问题了



一家之言,仅供参考
顶,却是不要搞这种无聊又不实用的东西。

乘着年轻奋斗吧
2013-01-11 11:41



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




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

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