千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:合肥千锋IT培训  >  技术干货  >  C的数据结构和C++的有区别吗?

C的数据结构和C++的有区别吗?

来源:千锋教育
发布人:xqq
时间: 2023-10-17 13:20:49

一、C的数据结构和C++的区别

C语言和C++描述数据结构最大的区别在于设置思想,C语言是一种结构化程序设计语言,而C++是一种面向对象的程序设计语言,它两者的区别主要在于数据和操作的关系。
C语言是定义数据类型,数据类型定义变量,然后函数操作变量,换句话说C语言是“操作的数据”。
C++是定义类,类本身就具备操作,换句话说,C++是“数据的操作”。

而对于结构体,C++中结构体和类基本完全类似。C++中结构体能继承、能实现多态!结构体中也可以包含构造函数和析构函数和其他内部成员函数,因此结构体和类基本雷同!少数的区别是,类中的成员变量默认为私有,而结构体中则为公有。

虽然二者基本毫无区别,struct更适合作为数据结构的实现体,class更适合作为对象的实现体。

延伸阅读:

二、C/C++结构体占用内存大小问题

计算struct占用的内存大小需要考虑两点:一是各个分量的偏移地址的计算,二是最终整体大小要进行地址对齐(为了确保结构的大小为结构的字节边界数(即该结构中占用最大空间的类型所占用的字节数)的倍数,所以在为最后一个成员变量申请空间后,还会根据需要自动填充空缺的字节)。

struct{ 

    char a[15]; //占15个字节,从0开始偏移,所以下面的int是从15开始偏移 

    int x;//偏移量 0x15+1=16 

}s1; 

cout<

struct{ 

    char a[15]; // 

    int x; //偏移量 16字节 

    char b; //偏移量 21字节 

}s2; //结果为21字节,按最大基本类型对齐,补充到24字节 

cout<

struct{ 

    char a[15]; 

    int x;  //偏移量 16字节 

    double b; //double偏移量必须为8的倍数,故偏移量24字节 

}s3;// 

cout<

struct{ 

    char a[15]; 

    int x;  //偏移量 16字节 

    double b; //偏移量 24字节 

    char c;//偏移量 32字节 

}s3;//共33字节,按最大基本类型对齐,补充到40字节(整除8) 

cout<

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

web前端会用到哪些软件工具?

2023-10-17

java/Python这么火,c++这么难,为什么我们还要选择用C++?

2023-10-17

app开发的制作为什么报价和开发周期都不一样?

2023-10-17

最新文章NEW

对数量庞大的照片进行分类管理,较好的方便检索的方法是什么?

2023-10-17

PHP中的interface有什么用处?

2023-10-17

PHP有哪些运行环境?

2023-10-17

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>