为什么输出的结果是这个大家帮忙看看
#include<stdio.h>void main()
{
int a[]={1,2,3,4,5,6};
int *p;
p=a;
printf("%5d%5d%5d%5d\n",*p,*(++p),*++p,*(p--));
printf("%5d%5d\n",*p,*(a+2));
}
为什么输出的结果是这个,好奇怪,求指导。[ ++p,p--,前面那个先自加后使用,后面那个先使用后自减。*(++p)等价于*++p。
本帖最后由 超凡天赐 于 2017-5-16 23:26 编辑
我突然想起来了一个问题{:10_285:},有一些编译器从左向右,有一些编译器从右向左。你的是自右向左的{:10_266:}
关于某些编译器为什么是从右向左处理参数的理解-shaohui973-ChinaUnix博客 http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=23782786&id=4015737
页:
[1]