请问为什么这道C语言的题目结果是-2,

发布时间:2021-03-15 00:53:06

请问为什么这道C语言的题目结果是-2,

网友回答

这个题目旨在考察++这个运算符,它执行的时候,将自增之前的值作为表达式的结果,然后,变量执行自增操作;所以
while(i++)的循环次数为5,即i=-5,-4,-3,-2,-1,但每次进入循环体之后i的值已经发生变化,即自增操作,和对应的switch表达式的值对比如下:
while表达式值 进入循环i的值 循环体内switch表达式值
-5 -4 1 -4 -3 2 -3 -2 3 -2 -1 4 -1 0 5而switch(i+5)的case只有 1,2,3
而题目问最后一行输出,所以我们只看最后一次循环,即case值为3
此时对应的i的值为-2
所以,最后一行输出由case 3: printf(%d\n,i);产生,输出为-2
以上问题属网友观点,不代表本站立场,仅供参考!