zoukankan      html  css  js  c++  java
  • [006]为什么C++会被叫做是C++?

    先了解一下自增和自减的运算符:

    自增(++)和自减(--)操作符为对象提供加1或减1操作:

    int i = 0, j;
    j = ++i; // j = 1, i = 1: prefix yields incremented value
    j = i++; // j = 1, i = 2: postfix yields unincremented value

    因为前置操作返回加1后的值,所以返回对象本身,这是左值。而后置操作返回的则是右值

    一个具体的例子来区分这个左值和右值:

     1 #include <iostream>
     2 using namespace std;
     3 
     4 void F(int a) {
     5     cout << a <<endl;
     6 }
     7 
     8 int main() {
     9     int i = 0;
    10     F(i);
    11     ++i = 10;      // OK ++i is a l-value
    12     // i++ = 20;   // Error i++ is a r-value
    13     F(i);
    14 
    15     return 0;
    16 }

    显示结果为:

    svpm-dev# ./foo
    0
    10

    前置操作需要做的工作更少,只需要加1后返回加一后的结果即可。而后置操符必须先保存操作数原来的值,以便返回加一之前的值作为操作的结果。

    对于int型对象和指针,编译器可能优化掉这项额外工作。但是对于更多的复杂迭代器类型,这种额外工作可能会花费更大的代价。

    ------------------------------------------------------------------------------------------------------------------------------

    再回到C++为什么是C++这个问题上来,为什么不是++C呢?

    C++的C说明了它本质上是从C语言演化过来的,C++语言是C语言的超集,是在C语言基础上进行的扩展(引入了new、delete等C语言中没有的操作符,增加了面向对象程序设计的支持,等等),是先有C语言,在进行C++。

    根据自增操作符前、后置形式的差别,C++表示对C语言进行扩展之后,还可以使用C语言的内容,而写成++C则表示无法再使用C的原始值了,也就是说C++不能向下兼容C了,这与实际情况不符。

  • 相关阅读:
    python的thread模块作用
    Python2、3解释器inpurt()函数的区别
    python中的单例设计模式
    Python2、3解释器中字符串中的区别
    浏览器向服务器发送请求的请求头解析
    Python中输出函数print()的三个参数
    Python中四种交换两个变量的值的方法
    学习爬虫看着篇(基础篇)
    Python读写txt文件时的编码问题
    网页和自然语言处理中的字符问题(半角和全角)
  • 原文地址:https://www.cnblogs.com/hustcser/p/3635841.html
Copyright © 2011-2022 走看看