一.概念
C语言:是一种面向过程的结构化编程语言,适合小型软件开发设计,大型软件的话会显得力不从心。
C++:在C语言的基础上发展而来,其保留了C语言的优点,也弥补了c语言的缺陷,其和C语言最本质的区别是它是面向对象的编程,这里的面向过程和面向对象的区别需要自己慢慢体会
二.对比
1.C++相对于C语言的优点
首先说一下C语言的缺点这样才能凸显C++的有点
1.不支持代码重用,导致程序中包含大量重复的代码
2.类型检测机制比较弱,使得很多C程序中的错误不能在编译阶段被发现,埋下隐患
3.C语言其结构特性注定只适合开发中小型的软件,随着编程规模扩大编程人员很难控制程序的复杂性
注:C++正是继承了C语言的优点弥补了C语言的缺点
接下来说说C++的优点
1.全面兼容C语言基本上C语言的代码无需修改就可以在C++上运行
2.出现了类的新特点,使得程序设计更加有条理和容易
3.支持重用,支持大型开发,能够提高开发效率
总而言之相对于C语言来说几乎只有优点没有缺点!
三.具体问题说明
1.函数返回值
C语言中如果一个函数没有返回值,则默认为int ,但是在C++中一个函数没有返回值也必须指定为void,否则编译不通过
2.函数参数
C语言中如果函数没有指定参数列表,则默认可以接受任意多个参数,但是在C++中如果没有指定参数列表,系统默认为void函数不接受任何参数,否则编译出错。
3.缺省参数(分为半缺省参数:void test(int a=1,int b),全缺省参数:void test(int a=1,int b=2))
C语言不支持缺省参数(就是定义函数时为参数默认一个值),但是C++支持,如果函数定义有默认参数,调用函数时候如果不使用实参,则函数自动使用默认参数,若带实参则使用实参
注意:1.带参数值的参数必须放在参数的最后面
2.缺省参数在函数的声明和定义中出现一次就行了,二选一,不能都出现
3.缺省参数必须是常量或全局变量
4.缺省参数必须通过值参和常参传递
4.局部变量的声明
C语言要求的局部变量声明必须在所有的可执行语句之前,而C++没有这个限制
5.函数重载:函数名字相同,功能类似,只是函数参数的参数个数,类型,顺序不同的函数
C语言不支持,C++支持
6.动态内存开辟
C语言使用malloc开辟的空间不知道其数据类型,返回的是void 指针,需要强制类型转换,但是C++使用new开辟的空间 不需要,因其后面定义的是类型如
char *p=new char[12]
以上是大致的C++与C的一些区别和比较,他们的区别还是需要在学习C++的过程中慢慢体会,此文就是为了给后面学习C++做一定的铺垫,对C++有定的了解!