当前位置: 代码迷 >> C语言 >> 关于指针..在线..等...
  详细解决方案

关于指针..在线..等...

热度:203   发布时间:2007-07-28 22:56:04.0
回复:(vbc)那为什么*(p++)不会出现内存问题.
因为你还没有去访问那块内存,如果你去访问那就会出错了

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

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


----------------解决方案--------------------------------------------------------
*(p++)和*p++ 是一样的效果,都是先取p 指向的内存的值,再使指针向后移,如果在下一条语句再访问p的内容,将出现不可预知的结果
----------------解决方案--------------------------------------------------------
回复:(wengjinxin)*(p++)和*p++ 是一样的效果,都是...
是这样的
----------------解决方案--------------------------------------------------------

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


----------------解决方案--------------------------------------------------------
回14楼

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

后面一个问题看不懂耶,不好意思
----------------解决方案--------------------------------------------------------
"既然在这先执行 (*q)++ 再执行 *p>那为什么不在第一行若的printf  也先执行后面的呢?" 这句话什么意思?
----------------解决方案--------------------------------------------------------
我第二个问题是.为什么用先执行(*q)++ 再执行.*p   而第一个输出却是从前往回执行...
    





                                  谢谢各位....
  
                         这里都是在2的包括内..是否意味着.. 这些优先级都一样? 
----------------解决方案--------------------------------------------------------

*p=&a,*q=&a

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

如果是int a=2,
p=a

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

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


----------------解决方案--------------------------------------------------------
指针运算符有什么用??
----------------解决方案--------------------------------------------------------
这么说吧:f(a ,b) void f(int i,int j)
实参a ,b 是按b, a 的顺序传给j ,i 的

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

优先级是一样的
----------------解决方案--------------------------------------------------------
  相关解决方案