| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1365 人关注过本帖
标题:关于指针..在线..等...
取消只看楼主 加入收藏
y218z903
Rank: 1
等 级:新手上路
帖 子:63
专家分:0
注 册:2007-7-27
收藏
 问题点数:0 回复次数:4 
关于指针..在线..等...
main()
{
int a=2,*p=&a,*q=&a;
printf("%d %d ",*p++,*(q++));
p=&a,q=&a;
printf("%d %d",*p,(*q)++);
}      为什么结果是2 2 3 2? 
搜索更多相关主题的帖子: 在线 
2007-07-28 21:56
y218z903
Rank: 1
等 级:新手上路
帖 子:63
专家分:0
注 册:2007-7-27
收藏
得分:0 
汗死..哪位高手..帮忙指点下...不盛感激...

2007-07-28 22:33
y218z903
Rank: 1
等 级:新手上路
帖 子:63
专家分:0
注 册:2007-7-27
收藏
得分:0 

不知是否,,在优先级里面.所做的标号..1-15..其中每个里面又有自己的子目录 就好象 ++和*都是在2里面..不过++在上,,,这意味着..是++高还是..两个同一级别?     我看视频教程上的是和2楼一样的..不过就是不能理解..
  * 和 ++ 的优先级相同,而且都是右结合,所以输出 *p++ 和输出 *(q++) 是一样的(p、q 都指向了a).   其中不是有括号吗?  不是要先算括号里的?  
  至于下面那句,记住,实参传递参数给形参的时候是按从右至左的顺序传递的,这里也是一样
即先执行 (*q)++ 再执行 *p 。而(*q)++ 执行完之后a 的值已经变成3了   对于.实参与形参我只在.函数调用里听过..在这时就不懂了...既然在这先执行 (*q)++ 再执行 *p>那为什么不在第一行若的printf 也先执行后面的呢?


2007-07-28 23:02
y218z903
Rank: 1
等 级:新手上路
帖 子:63
专家分:0
注 册:2007-7-27
收藏
得分:0 
我第二个问题是.为什么用先执行(*q)++ 再执行.*p   而第一个输出却是从前往回执行...
    





                                  谢谢各位....
图片附件: 游客没有浏览图片的权限,请 登录注册

  
                         这里都是在2的包括内..是否意味着.. 这些优先级都一样? 

2007-07-28 23:14
y218z903
Rank: 1
等 级:新手上路
帖 子:63
专家分:0
注 册:2007-7-27
收藏
得分:0 
非常感谢!!!    又学到了点...汗..呵呵 .

2007-07-28 23:26
快速回复:关于指针..在线..等...
数据加载中...
 
   



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

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