A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© jackwyang 中级黑马   /  2013-3-4 10:51  /  1469 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

三元表达式比较特殊,由三个操作数组成,形式为:[表达式1] ? [表达式2] : [表达式3],其中:

表达式1为一个逻辑表达式;
如果表达式1的值为真(!=0),则整个表达式为表达式2的值,否则为表达式3的值;


参见如下范例:



[cpp] view plaincopyprint?#include <stdlib.h>   
   
// 使用三元运算符计算绝对值   
#define ABS(x) ((x) > 0 ? (x) : (x) * -1)   
   
// 使用三元运算符计算最小值   
#define MIN(a, b) ((a) < (b) ? (a) : (b))   
   
// 使用三元运算符计算最大值   
#define MAX1(a, b) ((a) > (b) ? (a) : (b))   
   
// 不使用三元运算符计算最大值   
#define MAX2(a, b) (((a) + (b) + ABS((a) - (b))) / 2)   
   
int main(int argc, char* argv[])  
{  
    int a = -10, b = 10;  
   
    printf("|a| = %d/n", ABS(a));  
    printf("min = %d/n", MIN(a, b));  
    printf("max = %d/n", MAX1(a, b));  
    printf("max = %d/n", MAX2(a, b));  
      
    system("pause");  
    return 0;  

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

1 个回复

倒序浏览
值得学习ing!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马