Ubuntu中C语言和C++的区别

目录

前言

二、C++是什么?

三、C++和C语言的异同有什么?

1.编译器不同

2.结构体定义方式不同

3.字符串类型不同

总结


前言

C语言的基础语法,数据结构都已经学习过的基础上,学习一门新的语言:C++。

我们知道C++是在C语言的基础上发展而来,那么有没有必要再去学习C++?C++这种语言为什么会存在?带来了哪些便利之处?

答案是显而易见的,一个东西之所以能够长久存在,那么它就一定有它存在的道理。以下就是我对两种语言的优缺点的一些分析。


一、C语言是什么?

  1. C语言的本质就是对内存的操作。
  2. C语言是一门面向过程的计算机编程语言
  3. 面向过程:就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用最终实现想要的结果。

二、C++是什么?

  1. C++与C并非取代关系,而是一种拓展关系,C++是C的超集。

  2. C++是一门面向对象的一种语言。

  3. 面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的属性,行为。


三、C++和C语言的异同有什么?

1.编译器不同

C语言使用gcc编译器进行编译。

C++使用g++编译器进行编译,g++向上兼容可以编译C程序。g++编译器对类型的检查比gcc要更加的严格。

2.结构体定义方式不同

C语言中定义结构体:用来存放不同类型的数据

struct Stu
{
    char* name;
    int age;
    Pfunc f;
};

以后每次要使用结构体时都需要struct Stu+变量名设置好变量以后才可以使用。

C++中的结构体不再叫结构体而是叫“类”。关键字也有struct改成了class.

class Stu
{
public:
    string name;
    int age;
    void write_code()
    {
        cout << "正在努力的写代码" << endl;
    }
};

C++结构体中包含权限(private://私有的 public://公有的 protected://受保护)、属性(成员)、行为(函数功能)。

总结:

1.不论是类还是结构体都有内存对齐。

2.C中结构体是没有封装性,C中结构体中是不可以直接定义函数,只能通过函数指针的方式进行回调。

3.C++中结构体是有封装性,默认访问权限是公有的。

4.同是地C++中定义类的关键字class也是由struct衍生而来,只不过class访问权限默认为private私有的。而struct默认的是公有的public.

5.C++struct结构体在定义对象时无需再struct关键再修饰一次了。

6.C++中struct结构中的函数,就叫成员函数。非静态成员函数可以直接调用结构中的变量,非静态成员函数行参列表中有一个隐藏的this指针,所以可以调用类中的成员属性。

3.字符串类型不同

C语言中,字符类型的关键字是char,想要字符串就只能定义一个数组或一个字符指针存放字符串。且时常需要考虑结束符\0,字符长度越界,内存浪费等问题。

C++中,string比C中的字符的两种表示形式:字符指针或字符数组更加灵活。string修饰的字符串变量不再需要考虑结束符\0,字符长度越界,内存浪费等问题。


总结

以上就是今天要讲的内容,本文仅仅简单C++和C语言的一些不同点,并不是特别全面,仅作为个人的一个记录。后续会继续写的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蔚成风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值