当前位置:  技术问答>linux和unix

返回值问题

    来源: 互联网  发布时间:2017-05-28

    本文导语:  int func() {         int a = 1;         int b = 1;         int c = 192;         return a==1&&b==1&&c>0?192:0; } 为什么这个函数返回值是192,而不是1呢? 原理是什么? | //上面弄错了,大于运算...

int func()
{
        int a = 1;
        int b = 1;
        int c = 192;
        return a==1&&b==1&&c>0?192:0;
}

为什么这个函数返回值是192,而不是1呢?
原理是什么?

|
//上面弄错了,大于运算符的优先级比逻辑与更高,等价的语句应该是这样的
return ((a == 1 && b == 1) && (c > 0)) ? 192 : 0;

|
// &&优先级高于三目运算符,这个return语句实际上等价于:
return ((a==1 && b==1) && c) > 0 ? 192 : 0;

|
找个优先级的表对着分析吧

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。














站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3