回复:(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’,所以就有这样的结果
优先级是一样的
----------------解决方案--------------------------------------------------------