| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1315 人关注过本帖
标题:有个笔试题看不懂?
只看楼主 加入收藏
魏新建
Rank: 2
等 级:论坛游民
帖 子:55
专家分:86
注 册:2012-2-17
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:14 
有个笔试题看不懂?

int main(void)


{

        int a[] = {6, 7, 8, 9, 10};

        int *p = a;

        *(p++) += 123;   /* 其实没必要把p++扩起来,*和++在同一优先级,从右到左的结合顺序 */


        printf("%d, %d\n", *p, *(++p));




        return 0;

}为何输出的是8,8
搜索更多相关主题的帖子: void return 优先级 
2012-04-10 14:50
飞莲
Rank: 2
等 级:论坛游民
帖 子:42
专家分:64
注 册:2011-12-28
收藏
得分:0 
应该是printf是从右往左吧
2012-04-10 15:10
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
这笔试题出得可一般了

总有那身价贱的人给作业贴回复完整的代码
2012-04-10 15:36
yanshuili
Rank: 2
来 自:揭阳
等 级:论坛游民
帖 子:22
专家分:10
注 册:2011-3-28
收藏
得分:0 
int main(void)


{

        int a[] = {6, 7, 8, 9, 10};

        int *p = a; /*这里的 *p = a[0] */

        *(p++) += 123;  /*  *(p++)= *(p++) + 123  第一个*(p++)等于a[1] 第二个*(p++)等于a[2]就是8  这时前面的*(p++)=130     */


        printf("%d, %d\n", *p, *(++p));   /*  *(++p)= a[2] */




        return 0;
}
2012-04-10 16:07
C_596322153
Rank: 6Rank: 6
来 自:徽州
等 级:侠之大者
帖 子:182
专家分:466
注 册:2012-1-10
收藏
得分:0 
int main(void)


{

        int a[] = {6, 7, 8, 9, 10};

        int *p = a;

        *(p++) += 123;  //这句运行  p 先使用后自加一,即:a[0] = 123; 运行后 p 等于 &a[1] ;
        printf("%d, %d\n", *p, *(++p)); // 输出 自右向左 ++p 等于 &a[2]
        return 0;

}

2012-04-10 16:49
jianyuling00
Rank: 3Rank: 3
来 自:琼州学院
等 级:论坛游侠
帖 子:89
专家分:177
注 册:2012-3-17
收藏
得分:0 
我不太懂,但也知道没一个讲对的
2012-04-11 20:31
新手菜鸟鸟
Rank: 2
等 级:论坛游民
帖 子:37
专家分:57
注 册:2012-1-15
收藏
得分:5 
5楼正解!
2012-04-11 20:52
ming_wl
Rank: 2
等 级:论坛游民
帖 子:6
专家分:28
注 册:2012-4-9
收藏
得分:0 
这个也跟编译环境有关吧  
有的是从右往左  有的也不一定  
搞不清楚
2012-04-11 21:38
waterstar
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:984
专家分:2810
注 册:2010-2-12
收藏
得分:5 
首先,  *(p++) += 123;这句运行之后,p就指向了a[1]了。
 printf("%d, %d\n", *p, *(++p));执行的时候,由于++是前置的,并且++p是printf的第三个参数,根据c标准的调用规则,++p这句会被首先执行,并将p指向值压栈,就得出了那结果。

冰冻三尺,非一日之寒;士别三日,不足刮目相看!
2012-04-11 21:44
jqb
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-4-6
收藏
得分:0 
不太懂,有点怀疑结果
2012-04-11 21:47
快速回复:有个笔试题看不懂?
数据加载中...
 
   



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

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