C/C++培训
美国上市C/C++培训机构

400-111-8989

热门课程

C语言与C++的区别,从7个角度来区分C语言与C++

  • 发布:点点点
  • 来源:学习笔记
  • 时间:2018-08-10 09:23

首先应该介绍的是C++的发展史,大致来讲就是一些人发现了C语言存在一些无法解决的问题,从而对其进行改进,

从“C with Class”到class="replace_word" title="C++知识库" target="_blank" style="text-decoration:none;box-sizing:
border-box;color:#DF3434;font-weight:bold;">C++1.0、C++2.0等各个版本,

这里不进行赘述,有兴趣的小伙伴可以进行百度,本文主要讲述一些C++与C原因的区别,对学习过C语言后想要学习C++同学做一个引导;

注:本文使用windows32系统下的Microsoft Visual Studio 2013进行编写

1.文件名的后缀

C++的源文件使用”.cpp”文件后缀,创建时若不写后缀默认也为.cpp格式。

C语言与C++的区别,从7个角度来区分C语言与C++

2.返回值

如果不写返回值,C语言中可以这样做,会返回一个int型的值,但在C++中则无法这样做,会直接拨错编译失败,因此当函数没有返回值的时候,需要显示的给出void的返回值。

C语言与C++的区别,从7个角度来区分C语言与C++
C语言与C++的区别,从7个角度来区分C语言与C++

3.参数列表

无参数列表时,在C语言中可以给任意多个参数,都可以接受,但在C++中,如果没有参数列表,表示该函数不接受任何参数。

C语言与C++的区别,从7个角度来区分C语言与C++
C语言与C++的区别,从7个角度来区分C语言与C++

4.缺省参数

声明或定义函数时为函数的参数指定一个默认值,在调用函数时,如果没有指定实参则使用该默认值,否则就会使用传进来的实参。这种方法在C++中支持,而C语言不支持。

C语言与C++的区别,从7个角度来区分C语言与C++
C语言与C++的区别,从7个角度来区分C语言与C++

当然,在C++中缺省参数也有半缺省和全缺省之分,顾名思义,全缺省就是所有参数都有缺省值,半缺省则只有部分参数有缺省值,这里就需要注意了,半缺省中的缺省参数一定在参数列表的尾

例如:

int FunTest(int a, int b = 0; int c)//错误写法 {} int FunTest(int a, int b; int c = 0)//
正确写法 {} int FunTest(int a, int b = 0, int c = 0)//正确写法+1 {} 123456123456

5.函数重载

C++允许在同一作用域中声明几个功能类似的同名函数,且这些同名函数的形参列表必须不同,常用来处理实现功能相似数据类型不同的问题,

例如一个简单的加法函数,想让它实现各种类型(如int,double,char)的加法,在C语言中,只能以不同的函数名来实现。但在C++中,可以使用同一个函数名。

当然这里强调的是:一定是形参列表不同,假如两个函数形参列表相同或没有参数,但他们的返回值不同,这时是构不成重载的,因为编译器并不知道应该调用哪一个函数,会造成二义性错误。

C语言与C++的区别,从7个角度来区分C语言与C++
C语言与C++的区别,从7个角度来区分C语言与C++

6.引用

我们在学习C语言时,知道函数传参有两种方法:值传递和址传递。而在C++中,除了指针,还有一个引用的概念,引用是给一个已经存在的变量取了一个别名,两者一定为同种类型,编译器不会给引用变量新开辟内存空间,其与引用的变量共用同一块空间。

写法为:类型& 变量=引用的变量

C语言与C++的区别,从7个角度来区分C语言与C++

而其和指针又有什么区别:

指针引用

可以不初始化必须初始化

可以指向其他变量不能指向其他变量

存在NULL指针没有NULL引用

有多级指针没有多级引用

自增改变指向自增改变变量内容

引用在C++中使用较为广泛,需要在学习练习中加深理解。

7.命名空间与输入输出

命名空间(namespace)由于C++中存在大量的变量、函数和类,他们的名称都是存在于全局命名空间中,很容易形成命名冲突,因此引入命名空间的概念,
其定义了一个范围,在命名空间中定义的东西值在命名空间的范围内有效。

amespace one { int a; int b; int c; namespace two { int a; int b; int c;

}

} 123456789101112123456789101112

此时two中三个变量和one中的变量就会没有冲突。

除了使用命名空间,还可以导入已经存在的命名空间:

using namespace std; 11

这里的std是标准命名空间,在此命名空间下,C++可以使用不同于C语言的输入输出方法:

int main()

{ int a; cin >> a; cout << a << endl; return 0;

} 12345671234567

其中cout为标准命名空间std中输出流对象,cin为输入流对象“<<”于“>>”分别为输出输入操作符,表示将后面的内容流入到相应的对象中。 

预约申请免费试听课

上一篇:C语言开发入门学习方法,六步教你轻松入门C语言
下一篇:入门学习C语言一定要注意这些陷阱,C语言入门学习陷阱总结

学习C++掌握这三个知识点,菜鸟秒变大神

C++基础(29)信息学奥赛初学者指南函数应用2解析

C++开发中auto的讲解教程

C++培训中-简单,堆排序的讲解

选择城市和中心
贵州省

广西省

海南省