C和C++的区别

C和C++的区别


1 C和C++的不同

机制不同:C是面向过程的(但也可以编写面向对象的程序);C++是面向对象的,提供了类。

适用领域不同:C适合代码体积小,效率高的场合;C++适合更上层的,复杂的。

侧重点不同:C++侧重于对象而不是过程,侧重于类的设计而不是逻辑。

2 C和C++中struct的区别

  • C语言的struct不能有函数成员,而C++的struct可以有。
  • C语言的struct中数据成员没有private、public和protected访问权限的设定,而C++ 的struct的成员有访问权限设定。
  • C语言的struct是没有继承关系的,而C++的struct却有丰富的继承关系。

C语言中的struct没有权限设置,是一些变量的集合体,可以封装数据却不可以隐藏数据,而且成员不可以是函数。

3 C++中的 struct与class的区别

  • 默认继承权限不同。class继承默认是private继承,而struct继承默认是public继承。

  • class还用于定义模板参数,就像typename,但关键字struct不用于定义模板参数。

4 指针和引用的区别

  • 引用只能在定义时被初始化一次,之后不能被改变,具有从一而终的特性。而指针却是可变的。
  • 引用使用时不需要解引用(*),而指针需要解引用。
  • 引用不可以为空,而指针可以为空。
  • 对引用进行sizeof操作得到的是所指向的变量(对象)的大小,而对指针进行sizeof操作得到的是指针本身(所指向的变量或对象的地址)的大小。
  • 作为参数传递时,两者不同。

5 野指针和空指针

野指针是指向不可用内存的指针。任何指针变量在被创建时,不会自动成为NULL指针(空指针),其默认值是随机的。
空指针是一个特殊的指针,也是唯一一个对任何指针类型都合法的指针。指针变量具有空指针值,表示它当时处于闲置状态,没有指向有意义的内容。
通用指针可以指向任何类型的变量。通用指针的类型用(void*)表示。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值