c和c++的一些区别

1.C语言是面向过程的语言,c++是面向对象的语言(也可以写面向过程的语言).c++支持多态,继承,封装,还有标准的类模板库--STL,还有单例模式,生产者-消费者模式等设计模式而这些c都不支持.
2.函数的区别
  :C语言函数生成的符号,只跟函数名有关,而c++函数符号的生成,依赖函数名和参数列表,所以c不支持函数的重载.
:所以c++调用c语言函数需要extern "C" ,让编译器按照c语言的格式,生成符号.
//1.函数参数的默认值 //int fun(int a =10, int b, int c = 30) error //int fun(int a, int b, int c = 30) //{ // cout << a << endl; // cout << b << endl; // cout << c << endl; // return 0; //} /* * 1.函数参数的默认值必须从右向左依次设定. int fun(int a =10,int b,int c =300 ) error * 2.函数参数的默认值必须在--编译阶段--知道具体的数据, * 所以函数参数的默认值__--必须是常量--__,且函数参数的默认值___--作用域只在单文件--__. * * * 3.在同一个作用域对一个函数参数的默认值只能设置一次 * int fun(int a, int b, int c = 30); * int fun(int a, int b, int c = 30); * error * * * 4.函数参数的默认值具有就近原则 * int fun(int a, int b, int c = 30); * int fun(int a, int b = 20, int c ); * int main() * { * int a = 10; * int b = 200; * int fun(int a, int b, int c = 300); * fun(a,b); * * return 0; * } * 打印结果:10,200,300 */
3.const的区别
1).在c语言中,const修饰的为常变量,可以通过访问地址的方式更改它的值,
2).但是在C++中,若是用一个常量给一个const修饰的变量赋值,会在编译期间直接进行替换,
但若是用一个变量给该const修饰的变量赋值,就会和C语言一样,为常变量.
const int a = 10;
int *p = &(int)a;
*p = 200;在.c文件中打印a的值为200,a的值改变了,但是在.cpp文件中,不允许这种操作.
4.输入输出的区别
c语言中用printf和scanf进行输入输出,这两个是标准输入输出库中的两个函数,而c++使用的是cin和cout,它俩是ostream/istream类的实例化的对象.
5.对堆内存申请释放的不同.
c语言是通过malloc和free来对堆内存进行申请和释放的,同时nalloc和free是两个函数,而c++是通过new和delete来实现的,且new和delete在c++中是运算符.
6.struct的区别.
c语言中struct用来定义结构体,且不能为空,但是C++中struct是用来定义类,可以为空,同时可以包含函数(构造,析构函数等).

 

posted @ 2021-05-03 14:08  Wz_qq_2***6  阅读(434)  评论(0)    收藏  举报