zoukankan      html  css  js  c++  java
  • C与C++连续赋值的区别

        int a,b,c,d;
        a = b = 5;
    //   ( a!=b?a:b) = 1000;//如果a不等于b 那么a = 100;这句话执行完 a还是等于5,b= 100;
        printf(" a = %d
     b = %d
    ",a,b);

      这段代码在C语言是编译不通过,因为C语言不支持表达式不赋值;在C++可以编译过。

    C++里的a=b=3;与C语言一样,但是C++还有一种写法(a=b)=10,这样的是b的值赋给a,然后又把10赋给a,但是10没有赋给b;这里涉及到运算符重载的知识。

    C++

        int a=1, b=2, c=3, d=4;
        a = b = 5;
        (c = d) = 10; //在C语言里编译不通过
        ( a!=b?a:b) = 1000;//如果a不等于b 那么a = 100;这句话执行完 a还是等于5,b= 100;
        ( c != d  ? c:d)=1000;
        printf(" a = %d
     b = %d
    ",a,b);
        printf(" c = %d
     d = %d
    ",c,d);
    //  输出 a =5 
    //      b = 1000
    //      c = 1000
    //      d = 4

    C语言

        int a,b,c,d;
        a = b = 5;
    //   (c = d) = 10; //在C语言里编译不通过
    //   ( a!=b?a:b) = 1000;
        printf(" a = %d
     b = %d
    ",a,b);
        printf(" c = %d
     d = %d
    ",c,d);
    //   a = 5
    //   b = 5

    C++

        int a=1, b=2, c=3, d=4;
        a = b = 5;
        (c = d) = 10; //在C语言里编译不通过
     
        printf(" a = %d
     b = %d
    ",a,b);
        printf(" c = %d
     d = %d
    ",c,d);
        //输出  a = 5
        //     b = 5
        //     c = 10
        //     d = 4
  • 相关阅读:
    CSS简要内容
    HTML简要内容
    java中的多线程
    java中的IO流
    hash
    java中的集合
    java中的数组
    java中的异常机制(编译时异常)
    静态变量和静态方法的访问权限
    成员变量和成员方法的访问权限
  • 原文地址:https://www.cnblogs.com/yygsj/p/5495750.html
Copyright © 2011-2022 走看看