| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1824 人关注过本帖, 1 人收藏
标题:指针入门
只看楼主 加入收藏
RyanWang
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2008-10-27
收藏(1)
 问题点数:0 回复次数:11 
指针入门
void main()
{int a=2,*p=&a,*q=&a;
printf("%d,%d\n",*p++,*(q++));
p=&a,q=&a;
printf("%d,%d\n",*p,(*q)++);}
结果:2,2
     3,2

我是新生,第一次发帖,请各位多多关照
请问:在第一个printf语句中的 *(q++) 这个括号对它运算并没有起到"先算括号内,再算括号外"的原则吗?
    第二个printf 输出的结果为什么是 3,2 ?
搜索更多相关主题的帖子: 指针 入门 
2008-11-11 10:32
Ethip
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:771
专家分:0
注 册:2008-1-18
收藏
得分:0 
运行一下你的source,
首先指出,输出结果是 2,2
                     2,2
2008-11-11 12:48
Ethip
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:771
专家分:0
注 册:2008-1-18
收藏
得分:0 
看看这个详细的解释
http://bbs.bccn.net/thread-243612-1-1.html


[[it] 本帖最后由 Ethip 于 2008-11-11 13:11 编辑 [/it]]
2008-11-11 13:09
RyanWang
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2008-10-27
收藏
得分:0 
回复 2# 的帖子
我运行结果为:
2,2
3,2
这是什么原因?能帮忙解释解释吗?
2008-11-11 13:24
RyanWang
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2008-10-27
收藏
得分:0 
回复 3# 的帖子
谢谢.好贴
2008-11-11 13:50
scheelite
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2008-11-5
收藏
得分:0 
这和编译器有关系.printf从右执行还是从左执行就是 2,2
     3,2
 

[[it] 本帖最后由 scheelite 于 2008-11-11 15:13 编辑 [/it]]
2008-11-11 15:10
hokers
Rank: 1
等 级:新手上路
威 望:1
帖 子:102
专家分:0
注 册:2008-11-9
收藏
得分:0 
虽然没去执行看结果我想结果是:
2  2
2  2
*p++与*(q++)其实等价
随后又从新给他们赋值
p=&a,q=&a;       //注意这里的地址与上面的p q地址不同
2008-11-11 17:41
牧人
Rank: 1
等 级:新手上路
帖 子:126
专家分:0
注 册:2008-10-22
收藏
得分:0 
从左
2008-11-11 17:50
liduan274
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2008-11-12
收藏
得分:0 
*p=&a,*q=&a
我是新手  怎么可以把地址赋给指针呢?不是要赋给P或Q吗?
2008-11-12 13:58
RyanWang
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2008-10-27
收藏
得分:0 
回复 第6楼 scheelite 的帖子
谢谢
2008-12-03 16:01
快速回复:指针入门
数据加载中...
 
   



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

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