关于C语言与C++的区别与相似之处

关于C语言与C++的区别与相似之处

应用的场合面向不同

C语言:

**C语言是面向过程的结构化与模块化语言。**C语言又被称为最简单的高级语言,它可以直接对系统进行操作。当代码量少,解决问题较为简单时普遍使用C语言;但当程序规模大,问题较为复杂时,C语言的使用就比较局限了。

C++语言:

**C++语言是面向对象的程序设计语言。**上面说到C语言对大规模复杂的程序解决的不足就可以使用C++语言来处理。可以说C++是由C语言发展而来的,甚至与C语言兼容。理论上说C++能做到的事情C语言都能做到,但C++语言为大家提供了更简单的方法去实现。C++既可用于面向过程的结构化程序设计,也可用于面向对象的程序设计,是一种功能强大的混合型的程序设计语言。

小结

两者既是孤立的个体,又是紧密相连的。C++是建立在C语言的基础上发展而来的,两者在各自擅长的领域都起着十分重要的作用,C语言是基础,在此基础上所开发出来的所有语言都是在不同的场合发挥着它们独特的作用以及展示它们各自的优越性。

语法上面的不同

头文件

C语言:#include
并且C语言中所有头文件都含有.h后缀(如:stdio.h)

C++:同样#include
可以用**using nemespace std ** 用于C++标准库中的类和函数是在命名空间std中声明的。
C++中有系统提供的头文件不带后缀 .h,用户自己编制的头文件可以有后缀 .h。

输入、输出函数

C语言:输入函数为scanf ()
输出函数为printf()

C++:输入函数为cin>>
输出函数为cout<<
**cout必须要和”<<“一起使用,cin必须要和”>>“一起使用。我觉得C++中的输入输出流是很强大的,它不像C里面还要指定格式。endl表示换行。 **

字符串

C语言:char a[20]=“Cyuyan”;
char *p=“Cyuyan”;
可以用上面两种方式 ,一种是用数组的方式存储字符串,另外一种是用字符串指针。这两种方法都有一个麻烦的地方就是,字符串的连接、比较啊等等都需要调用函数执行,比如strcmp函数、strcat函数、strcpy函数。(strcmp:字符串比较;strcat:字符串连接;strcpy:字符串复制)

C++:string s1=“abcd”;

​ string s2=“hello world”;
string s3=s1+s2;
s1=s2;
字符串连接:s1+s2
字符串拷贝:s1=s2
字符串比较:s1==s2 s1!=s2

C++就比C语言的简单方便了许多

###结构体和类

C语言:结构体

struct Student //声明了一个名为Student的结构体类型

{

​ int num;

​ char name[20];

​ char sex;

} ;Student stud1,stud2; //定义了两个结构体变量 ,默认情况下为public类型。

C++:类

class Student

{

​ private:

​ int num;

​ char name[20];

​ char sex;

public:

​ void display()

​ {

​ cout<<“num=”<<num<<endl;

​ cout<<“name=”<<name<<endl;

​ cout<<“sex=”<<sex<<endl;

​ }

};Student stud1,stud2;//定义了两个Student类的对象

C++中的类将数据和操作封装在一起,并且指定了访问权限。如果不指定public,也不指定private,则系统就默认为私有的,这一点和C语言中的结构体是不一样的。因为类的出现,那么继承和派生、多态性等问题也就接踵而至了。

总结

C语言:

  1. C语言是一个有结构化程序设计、具有变量作用域以及递归功能的过程式语言。
  2. C语言传递参数均是以值传递,另外也可以传递指针。
  3. 不同的变量类型可以用结构体组合在一起。
  4. 只有32个保留字,使变量、函数命名有更多弹性。
  5. 部份的变量类型可以转换,例如整型和字符型变量。
  6. 通过指针,C语言可以容易的对存储器进行低级控制。
  7. 预编译处理让C语言的编译更具有弹性。

C++:

  1. 支持数据封装和数据隐藏。
  2. 支持继承和重用。
  3. 支持多态性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值