下面C语言中a++*2表示的是什么意思,以及这个程序的详细运算步骤,O(∩_∩)O谢谢

main(){inta=0,n;scanf("%d",&n);while(n--)printf("%d",a++*2);getch();}... main()
{
int a=0,n;
scanf("%d",&n);
while (n--)
printf("%d",a++*2);
getch();
}
展开
 我来答
清心又谦恭丶布丁9
推荐于2017-11-22 · TA获得超过6604个赞
知道小有建树答主
回答量:1247
采纳率:100%
帮助的人:1868万
展开全部
看了下下面的,看来我没讲清楚
这是优先集的问题。
++的优先笑者集比*高。所以先做++

a++*2就是a++然后*2
因为a++的含义是先做运算,等运算完再对a加1.
所以效果是a*2后,然后加上1.

可是如果是++a*2呢???
当然也是先++,
所以就是先++a,然后*2.
这才是我想表达的优先集问题

main()
{
int a=0,n;//声亩升姿明变量
scanf("%d",&n);//输入一个数字并存储
while (n--)//当n--!=0的时候执行循环。n--=0为假,跳出循环,n--的意思也是执行完表达式后,才对n-1.

printf("%d",a++*2);//上面讲过啦
getch();//停迅绝下程序
}
百度网友acbb043fa
2009-08-05 · 超过45用户采纳过TA的回答
知道小有建树答主
回答量:91
采纳率:0%
帮助的人:0
展开全部
a++*2其实就是考你操作符的结合律,由于++得优先级高于*(乘号),所以先计算a++。
而a++又桥渣是有“延迟”的,它在当前语州闷句中不对a的值加1,而是当前语句执行完之后,a的值才加1. 所以如果a一开册消弯始为 0,那么a++的值还是零。
不过printf("%d",a++*2);执行完之后,a的值为1了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友38c8e98
2009-08-05 · TA获得超过2657个赞
知道小有建树答主
回答量:1131
采纳率:0%
帮助的人:583万
展开全部
不管是a++还是n--,都是先进行运算后,再递增或者递减
例如输入颂历宽n的值为5,先判断n是否不为零,再执行n--,总共循野亮环5次
同样a++*2 是先a*2,然后再执行a++
以上跟运算符的优先级、结合性没关系
就烂蠢算加上括号也是一样,如(a++)*2 同样是先a*2再 a++
还有如指针变量p
*(p++) 同样是先*p 然后再p++
你如果把-- ++写到变量前面,那就是先递增或递减再进行运算
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gtgameking
2009-08-05 · TA获得超过312个赞
知道小有建树答主
回答量:165
采纳率:0%
帮助的人:163万
展开全部
首销做先输入个n,然后n开始自减,到0为止循环结束,循环体里面就是打印一个数,这个数就是a++*2,一开始a++*2是先乘2再做++,所以是0,然后a就是1了,然后又继续握斗好先乘2再++,所以就是2了,然后就是4了,然后就是6了,一直到n=0为止。例如输入n=4,段铅那么就是0246,输入5就是02468
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
_N3
2009-08-05 · 超过24用户采纳过TA的回答
知道答主
回答量:192
采纳率:0%
帮助的人:81.3万
展开全部
a先乘上2
然后a在自加1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式