
求解一道C语言的题目
设有程序段:t=0;while(printf("*")){t++;if(t<3)break;}答案说其中的循环控制表达式与‘0’等价,可是我怎么都弄不明白为什么,希望大家...
设有程序段:
t=0;
while(printf("*"))
{
t++;
if(t<3)break;
}
答案说其中的循环控制表达式与‘0’等价,可是我怎么都弄不明白为什么,希望大家给我一个满意的回答~ 展开
t=0;
while(printf("*"))
{
t++;
if(t<3)break;
}
答案说其中的循环控制表达式与‘0’等价,可是我怎么都弄不明白为什么,希望大家给我一个满意的回答~ 展开
2个回答
展开全部
好吧,你的答案是有问题的
printf()函数的返回值是它输出的字符的个数,在这里printf("*")的返回值为1,因此while循环是等同于while(1)的
你的t初始化为0,进入while循环以后即使执行了t++,t也只是等于1,因此满足if的条件break出while循环,总共只循环了一次。
printf()函数的返回值是它输出的字符的个数,在这里printf("*")的返回值为1,因此while循环是等同于while(1)的
你的t初始化为0,进入while循环以后即使执行了t++,t也只是等于1,因此满足if的条件break出while循环,总共只循环了一次。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询