| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1365 人关注过本帖
标题:关于指针..在线..等...
只看楼主 加入收藏
maoguoqing
Rank: 6Rank: 6
来 自:重庆
等 级:贵宾
威 望:28
帖 子:2980
专家分:19
注 册:2005-12-5
收藏
得分:0 
回复:(vbc)那为什么*(p++)不会出现内存问题.
因为你还没有去访问那块内存,如果你去访问那就会出错了

如果你*(++q)这样用 那就出现错误或者是输出一个不可预料的值

[此贴子已经被作者于2007-7-28 22:58:10编辑过]


天行健,君子以自强不息!!QQ:68660681
2007-07-28 22:56
wengjinxin
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2007-7-17
收藏
得分:0 
*(p++)和*p++ 是一样的效果,都是先取p 指向的内存的值,再使指针向后移,如果在下一条语句再访问p的内容,将出现不可预知的结果
2007-07-28 23:00
maoguoqing
Rank: 6Rank: 6
来 自:重庆
等 级:贵宾
威 望:28
帖 子:2980
专家分:19
注 册:2005-12-5
收藏
得分:0 
回复:(wengjinxin)*(p++)和*p++ 是一样的效果,都是...
是这样的

天行健,君子以自强不息!!QQ:68660681
2007-07-28 23:01
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
wengjinxin
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2007-7-17
收藏
得分:0 
回14楼

第一个问题:关键在于它们都是右结合的,自己在看一下吧

后面一个问题看不懂耶,不好意思
2007-07-28 23:07
wengjinxin
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2007-7-17
收藏
得分:0 
"既然在这先执行 (*q)++ 再执行 *p>那为什么不在第一行若的printf  也先执行后面的呢?" 这句话什么意思?
2007-07-28 23:08
y218z903
Rank: 1
等 级:新手上路
帖 子:63
专家分:0
注 册:2007-7-27
收藏
得分:0 
我第二个问题是.为什么用先执行(*q)++ 再执行.*p   而第一个输出却是从前往回执行...
    





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

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

2007-07-28 23:14
编程比卡超
Rank: 1
等 级:新手上路
帖 子:86
专家分:0
注 册:2007-7-27
收藏
得分:0 

*p=&a,*q=&a

想问下这个是什么意思??
我是新手来的!!

如果是int a=2,
p=a

printf("%d,",p++,)

这样输出是不是输出3??


2007-07-28 23:21
编程比卡超
Rank: 1
等 级:新手上路
帖 子:86
专家分:0
注 册:2007-7-27
收藏
得分:0 
指针运算符有什么用??

2007-07-28 23:23
wengjinxin
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2007-7-17
收藏
得分:0 
这么说吧:f(a ,b) void f(int i,int j)
实参a ,b 是按b, a 的顺序传给j ,i 的

在printf("%d %d",*p,(*q)++);这里也一样,就是先把(*q)++)的值算出来,传给后一个‘%d’,然后再把*p 的值算出来传给第一个‘%d’,所以就有这样的结果

优先级是一样的
2007-07-28 23:23
快速回复:关于指针..在线..等...
数据加载中...
 
   



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

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