
C语言--请教!!
有下面的程序:voidmain(){inti=2;printf("\n%d%d%d",i++,i++,i++);}运行之后为什么是432???谢谢指点!!...
有下面的程序:
void main()
{
int i=2;
printf("\n%d%d%d",i++,i++,i++);
}
运行之后为什么是432???
谢谢指点!! 展开
void main()
{
int i=2;
printf("\n%d%d%d",i++,i++,i++);
}
运行之后为什么是432???
谢谢指点!! 展开
9个回答
展开全部
C 语言编辑器 的输出是 从左到右 来检测输出的。
展开全部
printf("\n%d%d%d",i++,i++,i++);
是从自右向左进行的 ,先把i输出,再自加给下次用,这样先输出2,然后i变为3,同理输出432
是从自右向左进行的 ,先把i输出,再自加给下次用,这样先输出2,然后i变为3,同理输出432
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
i++,是从自右向左进行的
i++=i=2;但是此时i=3,
依次向左,i++=i=3,i变成4,依次再向左,
printf("\n%d%d%d",i++,i++,i++);
输出语句中,一个i++以一个%d输出,所以,对应着从左到右输出,变成了432
i++=i=2;但是此时i=3,
依次向左,i++=i=3,i变成4,依次再向左,
printf("\n%d%d%d",i++,i++,i++);
输出语句中,一个i++以一个%d输出,所以,对应着从左到右输出,变成了432
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看编译器运算机制了~
有的是从右向左运算:
就是i++,i++,i++;首先第3个i++,M是显示的时候是2。然后第2个i++,显示时是3。然后才是4。
显示的时候就成了,432
类似的如:i+++j+++k;
用括号写出他计算的顺序:
1:从右向左:i+(++(j+(++k)))
2:从左向右:(((i+)++j)+(++k)
所以不管怎么算,都是计算机的事。
为了解除这种计算机问题上的无奈,所以就有了第二种方法:
printf("%d",i++);
printf("%d",i++);
printf("%d",i++);
这与计算机或者编译器无关~很好~~很强大~~我喜欢~也建议你喜欢
有的是从右向左运算:
就是i++,i++,i++;首先第3个i++,M是显示的时候是2。然后第2个i++,显示时是3。然后才是4。
显示的时候就成了,432
类似的如:i+++j+++k;
用括号写出他计算的顺序:
1:从右向左:i+(++(j+(++k)))
2:从左向右:(((i+)++j)+(++k)
所以不管怎么算,都是计算机的事。
为了解除这种计算机问题上的无奈,所以就有了第二种方法:
printf("%d",i++);
printf("%d",i++);
printf("%d",i++);
这与计算机或者编译器无关~很好~~很强大~~我喜欢~也建议你喜欢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询