C 语言和 C++ 有什么区别

1、C语言是面向过程的,而C++是面向对象的;

2、C语言的标准的函数库很松散,而C++对于大多数的函数都是集成的很紧密;

3、C语言中结构只有成员变量,而在C++中结构中,可以有成员变量和成员函数。

语法上的区别

struct

在C语言中,试用定义的struct类型的变量方式:struct [定义的变量] [生成的变量];在C++语言中,试用定义的struct类型的变量方式:struct [定义的变量] [生成的变量]或者[定义的变量] [生成的变量]。

在C语言中struct定义的变量中不能有函数,而在C++中可以有函数。

函数的参数以及返回值(以test()为例)

C语言中,表示参数可有可无,返回值为int;C++中表示无参函数,由于无返回值导致语法错误,但是当无返回值的函数为构造函数的时候例外。

malloc

malloc函数的返回值为void*,在C语言中可以赋值给任意类型的指针,在C++中必须进行强制类型装换,否则报错。

malloc、free和new、delete

malloc、free在C和C++中均可使用,但是在C++中更多的是使用 new、delete。malloc、free是函数,而new、delete是操作符,两组堆内存的操作不能混用。

struct和class

class是对struct的扩展,struct默认的访问权限是public,而class默认的访问权限是private。



C 语言和 C++ 有什么区别