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