首页 > 用户发贴区 > 编程问题提问区 > 关于C语言指针的问题,请高手分析一下
2009
03-01

关于C语言指针的问题,请高手分析一下

课件有这个程序,输出结果为2  2   和3   2  ,哪位朋友帮我解释一下其中的*(q++)为什么会是2,还有下句二个值*p和(*q)++的值为什么是3  2。


#include <stdio.h>
void main()
{
int a=2,*p,*q;
p=&a;q=&a;
printf(“%d  %d\n”,*p++,*(q++));
p=&a;q=&a;
printf(“%d  %d\n”,*p,(*q)++);
}


关于C语言指针的问题,请高手分析一下》有 2 条评论

  1. woxingwode 说:

    ++较*的优先级高

     

  2. Freeze 说:

    结果应该是四个2;没有三;

    * 与++的优先级一样 按从右到左算

    而后++指的是这次用的还是原来的值,下次用的话就比原来的大一;

    还好有p=&a;q=&a;

    不然这个指针是很危险的;

留下一个回复