这个只有天知道
但这是合法的c语句
不能说它不对
哈,收到
----------------解决方案--------------------------------------------------------
++x&&++y&&++z;
这句的意思是当x自加变成0,由于&&的特性,当前面的值为假时,后面的也就不再执行了,因为&&是要两个值为真,才为真的,既然已经有一个是假的,就没必要再执行下面的++y&&++z,所以y与z没有进行自加运算(这个是经典哦~~“短路”)
----------------解决方案--------------------------------------------------------
10楼的兄弟说的有道理啊
----------------解决方案--------------------------------------------------------
1.关于 x=y=z= -1;
赋值表达式本身也有值,表达式z=-1的值为-1,所以y的值也就为-1,同理,x的值也为-1。语法上分析,这句没有错。
2。关于++x&&++y&&++z; 和 ++x||++y||++z;
++x&&++y&&++z为逻辑表达式,加上 ;就是逻辑表达式语句吧,没有什么奇怪的。对于逻辑与的运算,当某一表达式被判为“0”时,便不往下执行。对于逻辑或的运算,当某一表达式被判为“非0”时,便不往下执行(真真为真,假假为假,因此没必要往下执行)。
带着这两点去分析就可以理解了吧
悲伤的小弃魂分析得很详细了,楼主真该好好的感谢他.
3.运算顺序++,&&,||。自己查资料看看运算顺序,这对你以后分析更复杂的语句很有帮助.
[此贴子已经被作者于2006-7-26 19:59:31编辑过]
----------------解决方案--------------------------------------------------------
谢谢大家!!
----------------解决方案--------------------------------------------------------
1.关于 x=y=z= -1;
赋值表达式本身也有值,表达式z=-1的值为-1,所以y的值也就为-1,同理,x的值也为-1。语法上分析,这句没有错。
2。关于++x&&++y&&++z; 和 ++x||++y||++z;
++x&&++y&&++z为逻辑表达式,加上 ;就是逻辑表达式语句吧,没有什么奇怪的。对于逻辑与的运算,当某一表达式被判为“0”时,便不往下执行。对于逻辑或的运算,当某一表达式被判为“非0”时,便不往下执行(真真为真,假假为假,因此没必要往下执行)。
10楼的话非常有道理,谢谢10楼的见解,有收获啊,以后我看书要仔细啊
----------------解决方案--------------------------------------------------------
int x=y=z=-1;按语法来说是没有错。
不过有的编译器会报错。
例如win-tc的会报
未定义的符号'y'在main函数中
未定义的符号'z'在main函数中
VC++中允许。
----------------解决方案--------------------------------------------------------
int x=y=z=-1;按语法来说是没有错。
不过有的编译器会报错。
例如win-tc的会报
未定义的符号'y'在main函数中
未定义的符号'z'在main函数中
VC++中允许。
int x=y=z=-1按标准c语法来说是错的。
标准的c语法一律要求对变量先声明再使用,
int x,y,z;
x=y=z=-1;
这样才是对的。
----------------解决方案--------------------------------------------------------
++x&&++y&&++z;
这个是什么意思
有什么目的
++x&&++y&&++z
应该是
(++x)&&(++y)&&(++z)
先分别计算++x,++y,++z的植进行与运算.
要区分
x++&&y++&&z++和++x&&++y&&++z之间的区别
x++&&y++&&z++,
其实质是
{
x&&y&&z;
x++;
y++;
z++
}
----------------解决方案--------------------------------------------------------