c新手请教 x>y?x:y 是什么意思

解决方案 »

  1.   

    z = x>y?x:y就是
    if(x>y)
     z=x;
    else
     z=y;
      

  2.   

    呵呵,我再来解释一下:
    ? :这个运算符的含义就是如果?前面的条件成立,取值就为:前面,否则就为:后面
    因此x>y?x:y就是如果x>y成立就返回x,否则就返回y
      

  3.   

    这是一个三目运算符
    前面的条件成立,取值就为:前面,否则就为:后面
    因此x>y?x:y就是如果x>y成立就返回x,否则就返回y
      

  4.   

    根据楼主的问题,我提一个问题,看看有人答对否!
    #define min( a, b )     ((a)<(b)?(a):(b))
    main()
    {
       int i=5,j=0;   j = min( ++i, 10 );   printf( "%d %d\n", i, j );
    }不准使用编译器来看结果!尽量使用你的头脑来解决!呵呵...
      

  5.   

    7,7
    宏((a)<(b)?(a):(b))等价于
    ((++i)<(10)?++i:10)
    所以i在此增加了两次