https://www.jb51.cc/csharp/1192827.html

编程之家收集整理的这篇文章主要介绍了新手程序员应该知道的C语言和C++的区别编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/569eda12-f541-4e0d-a80a-e51e294c4269/0bbbf3fa8cea1d6cda501e9e81881a72.jpg

新手程序员应该知道的C语言和C++的区别

在刚刚学习编程的时候是不是有很多人以为C语言和C++是一样的呢?今天我就来详细的介绍以下C语言和C++有什么不同,下面让我们一起来学习吧。

1、关键字

蓝色标注为C语言关键字,C++继承了C语言的所有关键字,以下红色标注为C++中含有但C语言没有的关键字(根据c++98中提出C++包含63个关键字)

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/6925ff84-213c-4aed-880f-23088c354889/f034de3c1fa84bad7839110e88e9ff69.png

2、源文件区别 C语言文件后缀为.c,c++原文件名后缀为.cpp 如果在创建源文件时什么都不给,认是.cpp 3.返回值不同 C语言中,如果一个函数没有指定返回值类型,认为int类型,并返回一个随机数,一般为0XCCCCCCCC 在C++中,如果函数没有返回值则必须指定为void型,否则编译不能通过 4、参数列表 在C语言中,函数没有指定的参数列表时,认可接收任意多个参数 在C++中,有严格的参数类型检测,没有参数列表的函数认为void,不接收任何参数。 缺省参数 缺省参数是声明和定义时函数的参数指定一个认值。在调用函数时,如果没有指定实参则采用认值,否则使用指定的实参。 如下代码

而缺省参数是分为两类的,一类是全缺省,一类是半缺省。 首先是全缺省,全缺省参数所有参数都有认值,如果没有手动传参,那么编译器会使用认参数列表中的参数。但是这里值得注意的是,如果传参的时候只传了部分参数,那么该值会被从左至右匹配。 **代码示例:**

半缺省参数代码演示:

其中test函数至少传一个参数,test1函数至少传两个参数,函数才可以正常运行。

注意: 带缺省值的参数必须放在参数列表的最后面。因为传参是从右向左的。 缺省参数不能同时在函数声明和定义中出现,只能二者留其一。 缺省值必须是常量或者全局 变量。 C语言并不支持缺省。 5、C++支持函数重载,C语言不支持 在实际开发中,有时候我们需要实现几个功能类似的函数,只是有些细节不同。例如希望交换两个变量的值,这两个变量有多种类型,可以是 int、float、char、bool 等,我们需要通过参数把变量的地址传入函数内部。在C语言中,程序员往往需要分别设计出三个不同名的函数,其函数原型与下面类似:

但在C++中,这完全没有必要。C++ 允许多个函数拥有相同的名字,只要它们的参数列表不同就可以,这就是函数的重载(Function Overloading)。借助重载,一个函数名可以有多种用途。

参数列表又叫参数签名,包括参数的类型、参数的个数和参数的顺序,只要有一个不同就叫做参数列表不同。

运行结果:

重载就是在一个作用范围内(同一个类、同一个命名空间等)有多个名称相同但参数不同的函数。重载的结果是让一个函数名拥有了多种用途,使得命名更加方便(在中大型项目中,给变量、函数、类起名字是一件让人苦恼的问题),调用更加灵活。

在使用重载函数时,同名函数功能应当相同或相近,不要用同一函数名去实现完全不相干的功能,虽然程序也能运行,但可读性不好,使人觉得莫名其妙。 注意,参数列表不同包括参数的个数不同、类型不同或顺序不同,仅仅参数名称不同是不可以的。函数返回值也不能作为重载的依据。

**函数的重载的规则:**

(2)函数的返回类型可以相同也可以不相同。