do while()的问题

ppper2022 2005-10-28 10:57:46
main()
{
int x=2;
do
{
int x=1;
x=!x;
printf("%d,",x);
}
while(--x);
}


最后输出是什么结果?为什么?两问都要答,答对,才有分哦。:P
...全文
565 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
lone_512 2005-11-01
  • 打赏
  • 举报
回复
里面定义的x只能在最近的花括号内有效,输出值不管外部x的值是什么,总是为0的。输出结果应该是:0,0,
tab0tab 2005-11-01
  • 打赏
  • 举报
回复
cdo 2005-11-01
  • 打赏
  • 举报
回复
来晚了,楼主的都说过了,给点分。快。
zl0126 2005-11-01
  • 打赏
  • 举报
回复
mark
wyangwo 2005-11-01
  • 打赏
  • 举报
回复
凑个热闹,学习
happydivid 2005-10-31
  • 打赏
  • 举报
回复
0 0
因为do while循环不像for循环,初始化部分的变量与语句体内的变量是一个(当然,while没有初始化这个部分,呵呵)
反正一句话,do语句体内的i覆盖了main函数的i,而while(--i)部分的i是main函数的定义的i变量。所以循环执行两次。
minico 2005-10-31
  • 打赏
  • 举报
回复
nol 2005-10-31
  • 打赏
  • 举报
回复
0,0,

do while打括号里局部变量x起作用,每次printf("%d,",x);的都是0。
while(--x);句中的x是int x=2这个变量,所以执行两次。
所以打出两个0来
chenhu_doc 2005-10-29
  • 打赏
  • 举报
回复
给分了 一楼的全分了
ruodeer 2005-10-29
  • 打赏
  • 举报
回复
0,0
dusheng 2005-10-28
  • 打赏
  • 举报
回复
楼上对
niefuhua 2005-10-28
  • 打赏
  • 举报
回复
结果:
0,0,

原因:
printf("%d,",x);中的x是内部的x

while(--x);中的x是外部的x


junnyfeng 2005-10-28
  • 打赏
  • 举报
回复

结果:
0,0,
作用域的问题
sjchao 2005-10-28
  • 打赏
  • 举报
回复
好大的坑,我也来凑个热闹,0,0
jidahyx 2005-10-28
  • 打赏
  • 举报
回复
00
dudu妈 2005-10-28
  • 打赏
  • 举报
回复
结果为:0,0
是作用域的问题,也就是可见性的问题
当存在两个或多个具有包含关系的作用域时,在外层声明乐标识符后,如果内层中声明了与外层同名得标识符,则外层标识符在内层是不可见的。
kissfall 2005-10-28
  • 打赏
  • 举报
回复
结果:
0,0,
作用域的问题
tyj_3 2005-10-28
  • 打赏
  • 举报
回复
输出0,0,
这涉及到变量作用域的问题,在局部代码块中,一个代码块指的是一个{}的内容,同名的局部变量会覆盖全局变量,所以do{这之中的x覆盖全局变量x} 而while(x就属于全局的x了)
bm1408 2005-10-28
  • 打赏
  • 举报
回复
开除是小事,倒扣钱~~
codearts 2005-10-28
  • 打赏
  • 举报
回复
回复人: K() ( ) 信誉:70 2005-10-28 13:34:00 得分: 0


写这样的程序会被开除的

加载更多回复(4)

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧