- 在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\n",a); 10 return 0; 11 12 } 13 14 //上面的代码,在C语言中是可以的,因为函数的默认参数和返回值是int 但是在C++中,就不行。在C++中没有默认的参数和返回值类型。
- 而且 我在我的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\n",a); 10 return 0; 11 12 }
3. 新增了bool类型的关键子
- 三目运算符的加强:
- 在C语言中 只能作为右值,不能作为左值,除非是指针
1 a<b?a:b=50 2 //上面的就报错 3 4 //下面的就可以 5 *(a>b?&a:&b) =50
- 但是在C++中,三目运算符可以作为左值
1 (a>b?a:b)=50 2 //上面的代码在C语言中报错,但是在C++中不会报错
这个为啥在C++中不报错,是因为返回的是那个变量a的引用
- 在C语言中 只能作为右值,不能作为左值,除非是指针
- 三目运算符的加强:
4. const加强
5.枚举的加强
--反正有变化,但是具体总结,先不总结了