条件运算符嵌套_条件运算符(?:)的运算过程是什么

条件运算符嵌套_条件运算符(?:)的运算过程是什么条件运算符(?:)都知道就不细说了,最简单也是最常用的例子:n=(a>b)?a:b;    在C++primerplus第六版180页看到了一个例子,如下所示:    constcharx[2][20]={“Jason”,”atyourservices\n”}    constchar*y=”Quillstone”;

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

       条件运算符(?:)都知道就不细说了,最简单也是最常用的例子:n = (a > b) ? a : b;

       在C++ primer plus第六版180页看到了一个例子,如下所示:
       const char x[2] [20] = {“Jason”,”at your services\n”}

       const char * y = “Quillstone”;


       for(int i = 0; i <3; i++)

              cout<<((i < 2)? !i ? x[i] : y : x[1]);

       打印结果为:

       Jason Quillstone at your services

       

       乍一看有点愣住,但仔细看就会发现,原表达式的意思是(i < 2)? (!i ? x[i] : y) : x[1],再对照结果一看,印证了我的想法。在网上找到的例子中还有各种眼花缭乱的嵌套用法,但只要找到每个(?:)运算符应该是怎么配对的,就很容易理解了。

        还有一点,该书中说这个技巧完成了一个应被谴责的任务——隐藏代码,书中没有解释,网上也没有相关的资料。那这个条件运算符的代码隐藏体现在什么地方呢?我的理解就是:1、隐藏了一对圆括号。2、将代码缩短了,使得其难于理解。

         说了这么多,然而这个条件运算符嵌套并没有什么卵用。最常用的就那种最简单的形式,嵌套的越多代码越难于阅读和理解,这时候使用 if else 语句来表达会更为清晰。

        

        

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/186754.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • acwing1072. 树的最长路径(树形dp)

    acwing1072. 树的最长路径(树形dp)给定一棵树,树中包含 n 个结点(编号1~n)和 n−1 条无向边,每条边都有一个权值。现在请你找到树中的一条最长路径。换句话说,要找到一条路径,使得使得路径两端的点的距离最远。注意:路径中可以只包含一个点。输入格式第一行包含整数 n。接下来 n−1 行,每行包含三个整数 ai,bi,ci,表示点 ai 和 bi 之间存在一条权值为 ci 的边。输出格式输出一个整数,表示树的最长路径的长度。数据范围1≤n≤10000,1≤ai,bi≤n,−105≤ci≤105输入样例:65 1

    2022年8月8日
    4
  • unit8或double灰度图像的伪彩色显示[通俗易懂]

    unit8或double灰度图像的伪彩色显示[通俗易懂]简单将unit8或double类型灰度图以设定的伪彩色图像显示:  figure,imshow(gray,’Colormap’,jet(255));将灰度图像直接转化为RGB图形:rgb=ind2rgb(gray2ind(im,255),jet(255));如果是unit8数据而不是double类型数据可采用如下伪彩色转换:rgb=label2rgb(gray2ind(…

    2022年9月2日
    4
  • 二分归并排序算法_并归排序法

    二分归并排序算法_并归排序法#include<iostream>#include<climits>usingnamespacestd;voidMerge(intSourceArry[],intStart,intMid,intEnd){ intlen1,len2;…

    2025年8月21日
    4
  • 几种常见模式识别算法整理和总结

    几种常见模式识别算法整理和总结

    2021年11月29日
    39
  • 时滞系统matlab仿真_时滞模型的matlab编程

    时滞系统matlab仿真_时滞模型的matlab编程ddesd求解带有常规时滞的时滞微分方程(DDE)语法sol=ddesd(ddefun,delays,history,tspan)sol=ddesd(ddefun,delays,history,tspan,options)参数ddefun用于对微分方程y′(t)=f(t,y(t),y(d(1),…,y(d(k)))的右侧进行计算的函数句柄。此函数必须为以下形式:dydt=…

    2022年9月1日
    3
  • 基于opencv人脸识别

    基于opencv人脸识别一、准备所有代码上传至https://pan.baidu.com/s/1ETUetRnU83iytb6ZcE5GUQ提取码:0jei环境:win10,vs2013,opencv3.2注:每个代码都可以在vs中单独运行该项目所有文件如下:其中只需要使用的文件如下:详细代码://这个是生成照片的代码#include<opencv2…

    2022年6月4日
    41

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号