18)C++对C的增强

  1. 在C++中所有的变量都必须有类型,但是在C语言中没有这个要求,C语言中的默认类型在C++中不合法,
     1 #include<stdio.h>
     2 f()
     3 {
     4     return 10;
     5 }
     6 int main()
     7 {
     8     int a=f();
     9     printf("%d
    ",a);
    10     return 0;
    11 
    12 }
    13 
    14 //上面的代码,在C语言中是可以的,因为函数的默认参数和返回值是int  但是在C++中,就不行。在C++中没有默认的参数和返回值类型。
  2. 而且  我在我的C语言代码中,传参数时,还可以这样(关键看我的那个f函数传参)
     1 #include<stdio.h>
     2 f()
     3 {
     4     return 10;
     5 }
     6 int main()
     7 {
     8     int a=f(10,20);//看,我的函数定义没有参数,但是我在调用时加了参数,居然可以运行
     9     printf("%d
    ",a);
    10     return 0;
    11 
    12 }

   3. 新增了bool类型的关键子

    1. 三目运算符的加强:
      1.  在C语言中 只能作为右值,不能作为左值,除非是指针         
        1 a<b?a:b=50
        2 //上面的就报错
        3 
        4 //下面的就可以
        5 *(a>b?&a:&b) =50
      2. 但是在C++中,三目运算符可以作为左值
        1 (a>b?a:b)=50
        2 //上面的代码在C语言中报错,但是在C++中不会报错
        这个为啥在C++中不报错,是因为返回的是那个变量a的引用

         

   4. const加强

  5.枚举的加强

      --反正有变化,但是具体总结,先不总结了

  

原文地址:https://www.cnblogs.com/xiaoyoucai/p/8178845.html