| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1053 人关注过本帖
标题:各位帮帮忙!鄙人看不懂这段代码!!!
只看楼主 加入收藏
Wangzhongjie
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2013-5-6
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:11 
各位帮帮忙!鄙人看不懂这段代码!!!
#include<stdio.h>
#define S x=y=z
#define P3(x,y,z)   printf("x=%d\ty=%d\tz=%d\n",x,y,z)
void main(void)
{
    int x,y,z;
    S=1;++x||++y||++z;P3(x,y,z);
    S=1;++x&&++y||++z;P3(x,y,z);
    S=1;++x&&++y&&++z;P3(x,y,z);
    S=-1;++x||++y&&++z;P3(x,y,z);
    S=-1;++x||++y||++z;P3(x,y,z);
    S=-1;++x&&++y&&++z;P3(x,y,z);
}

运行结果:
x=2     y=1     z=1
x=2     y=2     z=1
x=2     y=2     z=2
x=0     y=0     z=-1
x=0     y=0     z=0
x=0     y=-1    z=-1
Press any key to continue
搜索更多相关主题的帖子: include 
2013-05-26 21:15
赵疯子
Rank: 8Rank: 8
来 自:dream
等 级:蝙蝠侠
威 望:2
帖 子:365
专家分:737
注 册:2013-5-5
收藏
得分:0 
这个是验证前置自增自减的式子
2013-05-26 21:17
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
收藏
得分:0 
这种代码看不懂没关系,需要你看懂的代码还很多,而且有意思得多

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2013-05-26 21:18
赵疯子
Rank: 8Rank: 8
来 自:dream
等 级:蝙蝠侠
威 望:2
帖 子:365
专家分:737
注 册:2013-5-5
收藏
得分:0 
还有当逻辑与的时候第一个结果为0 后面的式子不运算,逻辑或第一个式子非0的话,后面的式子不运算
2013-05-26 21:18
我叫沃恩
Rank: 12Rank: 12Rank: 12
来 自:Asia
等 级:贵宾
威 望:10
帖 子:1234
专家分:3865
注 册:2013-3-29
收藏
得分:0 
这是逻辑运算符,多看书,理解!!

因为我是菜鸟,所以应该被骂! 细节+坚持=成功!
2013-05-26 21:30
Wangzhongjie
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2013-5-6
收藏
得分:0 
回复 2楼 赵疯子
可否详解呢?特别是:#define P3(x,y,z)   printf("x=%d\ty=%d\tz=%d\n",x,y,z)这一步!
2013-05-26 21:52
dzzgml
Rank: 2
等 级:论坛游民
帖 子:18
专家分:44
注 册:2012-7-20
收藏
得分:0 
回复 楼主 Wangzhongjie
楼主如果把逻辑运算,直增,自减学的扎实的话这个题不难。。。。
2013-05-26 22:06
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2392
专家分:13384
注 册:2013-3-3
收藏
得分:10 
#include<stdio.h>
 #define S x=y=z                  //这个的意思就是有S的地方用x=y=z进行替换
 #define P3(x,y,z)   printf("x=%d\ty=%d\tz=%d\n",x,y,z)   //这个的意思就是有P3(x,y,z)的地方用printf("x=%d\ty=%d\tz=%d\n",x,y,z)进行替换
 void main(void)  
 {
     int x,y,z;
     S=1;++x||++y||++z;P3(x,y,z);
     S=1;++x&&++y||++z;P3(x,y,z);
     S=1;++x&&++y&&++z;P3(x,y,z);
     S=-1;++x||++y&&++z;P3(x,y,z);
     S=-1;++x||++y||++z;P3(x,y,z);
     S=-1;++x&&++y&&++z;P3(x,y,z);
 }
/*
 S=1;++x||++y||++z;P3(x,y,z);
 x=y=z=1;++x||++y||++z;printf("x=%d\ty=%d\tz=%d\n",x,y,z);
 这样对于逻辑运算符你该理解,因为或的第一个成立所以后面的不执行,就x加1,所以结果2、1、1
*/

Maybe
2013-05-26 22:15
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:5 
3个知识点

宏替换
前加与后加
短路


[fly]存在即是合理[/fly]
2013-05-26 23:29
赵疯子
Rank: 8Rank: 8
来 自:dream
等 级:蝙蝠侠
威 望:2
帖 子:365
专家分:737
注 册:2013-5-5
收藏
得分:5 
以下是引用Wangzhongjie在2013-5-26 21:52:19的发言:

可否详解呢?特别是:#define P3(x,y,z)   printf("x=%d\ty=%d\tz=%d\n",x,y,z)这一步!
define 是宏,后面的输出
2013-05-27 09:11
快速回复:各位帮帮忙!鄙人看不懂这段代码!!!
数据加载中...
 
   



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

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