下面程序允许结果是4,为什么 int n=0; while(n++<2); printf("%d"
下面程序允许结果是4,为什么intn=0;while(n++<2);printf("%d",n)...
下面程序允许结果是4,为什么
int n=0;
while(n++<2);
printf("%d",n) 展开
int n=0;
while(n++<2);
printf("%d",n) 展开
3个回答
展开全部
单线程下:
n++表示使用n之后再加1
那么n=2时,n<2不成立,跳出while循环,然后n自加1,则n=3
所以n最多等于3,不可能为4。
如果是多线程执行:
那么可能有两个线程执行此代码,当n=2跳出循环后,一个线程加1后进入等待,另一个线程
又加1,则输出为4
n++表示使用n之后再加1
那么n=2时,n<2不成立,跳出while循环,然后n自加1,则n=3
所以n最多等于3,不可能为4。
如果是多线程执行:
那么可能有两个线程执行此代码,当n=2跳出循环后,一个线程加1后进入等待,另一个线程
又加1,则输出为4
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
比方说,当n=1时,执行n++,n的值为2,n++的返回值为1
所以n++<2不成立时,n++的返回值为3,这时n的值为4
所以n++<2不成立时,n++的返回值为3,这时n的值为4
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询