去掉脖子上小肉猴偏方:C语言程序,急用啊,谢谢~~~

来源:百度文库 编辑:高校问答 时间:2024/05/04 05:21:50
#include<stdio.h>
main()
{int a[5]={10,20,30,40,50};int *b=a;
b++;
printf("%d""%d",*b,*b++);}
答案怎么是30,20
详细的,谢谢了哦,拜托。

printf(" ",a,b,c,d,e);
此函数中的参数是从右向左编译的,也就是先编译参数e,在编译参数b,……因此printf("%d""%d",*b,*b++);是先编译,*b++,然后再编译,*b,,但是真正输出的时候就按照printf函数中参数从做到右输出了。。明白了吗?

printf里面是从右向左运算的.

运行结果是20,20

第一个20应该没有疑问吧,第二个20,因为在输出那一行是*b++;
先输出*b的内容后,b再加1,所以与输出b内容一样

*b=a;就是相当于*b=a[0];
b++后,b指向a[1],所以*b是20
如果printf是从右向左运算,*b++先输出20,然后b指向a[2],所以*b就成了30;
否则应该是20,20

20 20

是20,20啊~不是30,20