C语言 main(){ int i=8; printf("%d\n%d\n%d\n%d\n%d\n%d\n",++i,--i,i++,i--,-i++,-i--);}
4个回答
展开全部
在我坚持不懈的探索中,我终于发现了在vc6.0中printf的奥秘。
首先,他是从右向左计算的,其次是类似i++,i--之类的显示原数值,不会改变原数值。例如上面的-i--输出-8,此时的i依旧等于8。但要是遇到类似于--i或++i的,则要进行计算。例如i=8,--i=7此时的i=7。
首先,他是从右向左计算的,其次是类似i++,i--之类的显示原数值,不会改变原数值。例如上面的-i--输出-8,此时的i依旧等于8。但要是遇到类似于--i或++i的,则要进行计算。例如i=8,--i=7此时的i=7。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
9
7
8
8
-8
-8
这是我认为的结果;
跟你说的vc6编译的跟我想的第一个数字不同,我不能理解;
这个题考的就是
++
和
--
,++
--
出现在数字前面,那就应该先加1或减1再输出数字;
如果++
--
出现在数字出现在后面那是先输出后加1或减1
7
8
8
-8
-8
这是我认为的结果;
跟你说的vc6编译的跟我想的第一个数字不同,我不能理解;
这个题考的就是
++
和
--
,++
--
出现在数字前面,那就应该先加1或减1再输出数字;
如果++
--
出现在数字出现在后面那是先输出后加1或减1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这里涉及函数参数入栈顺序,vc平台下的参数入栈,即计算实参的顺序是从右到做,具体过程如下:
printf("%d\n%d\n%d\n%d\n",++i,--i,i++,i--);
//
先就算i--
8
i++
8
--i
7
++i
8
printf("%d\n%d\n%d\n%d\n",++i,--i,i++,i--);
//
先就算i--
8
i++
8
--i
7
++i
8
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询