| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1092 人关注过本帖
标题:解析一下这个程序
只看楼主 加入收藏
穆扬
Rank: 1
等 级:禁止发言
帖 子:1910
专家分:0
注 册:2006-6-1
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

2006-07-26 17:10
终极sl
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2006-7-22
收藏
得分:0 
以下是引用穆扬在2006-7-26 17:10:19的发言:

这个只有天知道
但这是合法的c语句
不能说它不对

哈,收到


欢迎光临我的空间!!! http://hi.baidu.com/zhongji
2006-07-26 17:51
1st_sWorD
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2006-7-22
收藏
得分:0 
++x&&++y&&++z;
这句的意思是当x自加变成0,由于&&的特性,当前面的值为假时,后面的也就不再执行了,因为&&是要两个值为真,才为真的,既然已经有一个是假的,就没必要再执行下面的++y&&++z,所以y与z没有进行自加运算(这个是经典哦~~“短路”)
2006-07-26 18:17
zpeye
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2006-7-26
收藏
得分:0 
10楼的兄弟说的有道理啊

2006-07-26 18:21
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 
以下是引用悲伤的小弃魂在2006-7-26 17:07:13的发言:
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编辑过]


对不礼貌的女生收钱......
2006-07-26 19:57
canon787
Rank: 1
等 级:新手上路
帖 子:93
专家分:0
注 册:2006-6-28
收藏
得分:0 
谢谢大家!!

Learning by heart
2006-07-26 21:28
喝茶的小k
Rank: 1
等 级:新手上路
帖 子:87
专家分:0
注 册:2006-7-27
收藏
得分:0 
回复:(canon787)解析一下这个程序

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楼的见解,有收获啊,以后我看书要仔细啊


2006-07-27 11:06
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
int x=y=z=-1;按语法来说是没有错。
不过有的编译器会报错。
例如win-tc的会报
未定义的符号'y'在main函数中
未定义的符号'z'在main函数中
VC++中允许。

倚天照海花无数,流水高山心自知。
2006-07-27 15:42
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 
以下是引用nuciewth在2006-7-27 15:42:17的发言:
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;
这样才是对的。


对不礼貌的女生收钱......
2006-07-27 15:46
boyatec
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2006-7-28
收藏
得分:0 
以下是引用终极sl在2006-7-26 16:27:12的发言:
++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++
}

2006-07-28 23:55
快速回复:解析一下这个程序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027118 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved