课件有这个程序,输出结果为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)++);
}
>> 本文固定链接: http://www.vcgood.com/archives/3053
++较*的优先级高
结果应该是四个2;没有三;
* 与++的优先级一样 按从右到左算
而后++指的是这次用的还是原来的值,下次用的话就比原来的大一;
还好有p=&a;q=&a;
不然这个指针是很危险的;