执行下列语句的输出结果(C语言题目)

inta,b,c;a=b=c=1;++a||++b&&++c请顺便解释一下,看不懂为什么是这样的。谢谢!... int a,b,c;
a=b=c=1;
++a||++b&&++c

请顺便解释一下,看不懂为什么是这样的。
谢谢!
展开
 我来答
doujiangwutang
2011-01-11 · TA获得超过969个赞
知道小有建树答主
回答量:142
采纳率:0%
帮助的人:119万
展开全部
++a||++b&&++c
因为&&的优先级比||高,所以上式相当于++a||(++b&&++c)或的两旁只要一个为真整个表达式就是真,所以计算++a后a为2为真,就不再计算逻辑或之后的表达式了,故b与c的值仍是1,如果改为
(++a||++b)&&++c
则a=2,b=1,c=2,逻辑与符号要求两边表达式值都为真时表达式值为真,所以左边(++a||++b)
的逻辑或表达式,++a为2值为值,(++a||++b)表达式为真,b没有参与自增,逻辑与右边++c为2为真,这时才能得出整个表达式值为真,所以a=2,b=1,c=2
希望能够帮到您。
百度网友04f551bd3
2011-01-11 · 超过13用户采纳过TA的回答
知道答主
回答量:51
采纳率:0%
帮助的人:0
展开全部
a=b=c=1;//赋值
++a||++b&&++c;//设计到两个运算符的意思。||只要前面的为真后面的不执行,
//&&前面的为假后面的不执行。本操作之后a=2,b=1,c=1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
adavgl
2011-01-12 · TA获得超过765个赞
知道小有建树答主
回答量:753
采纳率:0%
帮助的人:589万
展开全部
这么复杂一个程序才5分?main()
{
char n;
int i;
for(i=0;i<13;i++)
{
for(n=i;n<13;n++)
printf("%c",n+65);
printf("*");
for(;n<26-i;n++)
printf("%c",n+65);
printf("\n");
}
printf("*\n");
}
高不太好解释,你自己看吧,看不明白问我。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式