当前位置: 代码迷 >> C语言 >> 解析一下这个程序
  详细解决方案

解析一下这个程序

热度:101   发布时间:2006-07-26 13:38:37.0
解析一下这个程序
main()
{
int x, y, z;
x=y=z= -1;
++x&&++y&&++z;
printf("x=%d\t y=%d\t z=%d\n", x, y, z);
x=y=z= -1;
++x&&++y||++z;
printf("x=%d\t y=%d\t z=%d\n", x, y, z);
x=y=z= -1;
++x||++y||++z;
printf("x=%d\t y=%d\t z=%d\n", x, y, z);
}
搜索更多相关的解决方案: 解析  

----------------解决方案--------------------------------------------------------
是一道基础题目

目的是让你了解 逻辑运算符 和 自增运算符的优先级别

我认为楼主应该慢慢查书 自己研究出来才能印象深刻 对以后的学习有帮助


还有:那个X=Y=Z=-1; 这种连着赋值的写法是错的 潭浩强的书上写到过
----------------解决方案--------------------------------------------------------
没法解释,请看看书吧!


----------------解决方案--------------------------------------------------------
提示: 作者被禁止或删除 内容自动屏蔽

2006-07-26 07:40:18
穆扬

等 级:禁止发言
帖 子:1910
专家分:0
注 册:2006-6-1
  得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

2006-07-26 07:46:19
终极sl

等 级:新手上路
帖 子:15
专家分:0
注 册:2006-7-22
  得分:0 
++x&&++y&&++z;
这好象不对啊

X=Y=Z=-1这句对的

----------------解决方案--------------------------------------------------------
提示: 作者被禁止或删除 内容自动屏蔽

2006-07-26 07:53:39
Sally_SJL

等 级:新手上路
威 望:2
帖 子:450
专家分:1
注 册:2006-7-14
  得分:0 
这程序我运行过了,所以应该没有错,可是对于运行的结果,有点不明白
----------------解决方案--------------------------------------------------------
++x&&++y&&++z;

这个是什么意思
有什么目的
----------------解决方案--------------------------------------------------------
1.关于 x=y=z= -1;
赋值表达式本身也有值,表达式z=-1的值为-1,所以y的值也就为-1,同理,x的值也为-1。语法上分析,这句没有错。
2。关于++x&&++y&&++z; 和 ++x||++y||++z;
++x&&++y&&++z为逻辑表达式,加上 ;就是逻辑表达式语句吧,没有什么奇怪的。对于逻辑与的运算,当某一表达式被判为“0”时,便不往下执行。对于逻辑或的运算,当某一表达式被判为“非0”时,便不往下执行(真真为真,假假为假,因此没必要往下执行)。

带着这两点去分析就可以理解了吧

----------------解决方案--------------------------------------------------------
  相关解决方案