1. C++语言将struct当成类来处理的,所以C++的struct可以包含C++类的所有东西,例如构造函数,析构函数,友元等,C++的struct和C++类唯一不同就是

struct成员默认的是public, C++默认private。而C语言struct不是类,不可以有函数,也不能使用类的特征例如public等关键字 ,也不可以有static关键字。

2. C++ struct里面成员初始化的形式和类是相同的,不可以直接初始化,就是不可以定义成员的时候同时初始化。C语言 struct中间的某个类型(例如int)也不可以直接初始化。

就是说下面int a = 0;在C++和C语言里面都是不能通过的。

3.  初始化方式,C++ struct的初始化,C++不仅拥有C语言的初始化方式。如下:

也可以使用类的初始化方式

4. 类型不同,下面代码:

在C里面实际上数据类型为 (struct HE),所以定义一个结构HE变量都要 带上struct.

structHE a;   //C语言 变量方式

而在C++里面实际上数据类型为HE(主要是因为结构体被当成类对待了),所以定义变量不需要 struct.

HE a; //C++语言 变量

5. typedef struct 在C++和C语言中都是一样的功能,定义别名。但是要注意下面的代码的区别

//代码一

//代码二

上面两个代码省略 struct的名字 HE都是可以的。

总结:C++语言因为是和C语言兼容的,所以C语言的语法在C++编译器里不会出错,但是程序员最好知道什么是C语言,什么是C++语言。

C/C++编程学习QQ群:1108152000,视频学习,问题解答!

c++ 结构体初始化_C/C++编程笔记:C语言和C++语言的 struct 对比!区别在哪里?相关推荐

  1. Go 学习笔记(33)— Go 自定义类型 type(自定义结构体、结构体初始化、结构体内嵌、自定义接口)

    1. 自定义类型格式 用户自定义类型使用关键字 type ,其语法格式是: type newType oldType oldType 可以是自定义类型.预声明类型.未命名类型中的任意一种. newTy ...

  2. c++ 结构体初始化_【干货】c语言基础语法——结构体

    1.关于C语言结构体的引入 学习环境搭建1_Linux C语言_嵌入式开发工程师-创客学院​www.makeru.com.cn 在实际问题中有时候我们需要几种数据类型一起来修饰某个变量. 例如一个学生 ...

  3. c++ 结构体初始化_STM32入门系列-使用库函数点亮LED,LED初始化函数

    要点亮LED,需要完成LED的驱动, 在工程模板上新建一个led.c和led.h文件,将其存放在led文件夹内.这两个文件需要我们自己编写. 通常xxx.c文件用于存放编写的驱动程序,xxx.h文件用 ...

  4. linux下C结构体初始化

    引子 在看Linux netlink部分的时候看到了这样的写法 struct netlink_kernel_cfg cfg = {.groups = RTNLGRP_MAX,.input = rtne ...

  5. go结构体初始化_浅谈golang结构体偷懒初始化

    运行一段程序,警告: service/mysqlconfig.go:63::error: golang.guazi-corp.com/tools/ksql-runner/model.CreatingM ...

  6. go结构体初始化_go嵌套匿名结构体的初始化详解

    go匿名结构体 嵌套匿名结构体的 示例代码片. type debugConfig struct { MaxQueueDepth int `json:"maxQueueDepth"` ...

  7. 关于结构体初始化的自我小结

    前段时间在一个项目中使用到结构体数组来存储产品不同型号的参数,使程序通用化,便于测试和快速生产.由于之前很少使用结构体数组,在初始化时遇到了一点小阻碍,于是便想到对于结构体和其数组的初始化操作做一个小 ...

  8. c语言 结构体 初始化,C语言结构体初始化

    C语言结构体初始化教程 在 C语言结构体初始化 语法 struct structName varName = {fileldValue1, fileldValue2, fileldValue3}; 参 ...

  9. 浅谈C++结构体初始化

    本文博客链接 结构体 在实际问题中,一组数据可能具有不同的数据类型.假设要存储班上同学的信息,我们需要存储他(她)的姓名.性别.学号.我们希望有一种数据格式将所有信息存储到一个单元中.数组不能完成这项 ...

最新文章

  1. MongoDB中的读写锁
  2. 手机蓝牙如何减少延时_如何使用车载蓝牙播放手机音乐的方法
  3. 步步为营 .NET 设计模式学习笔记 十三、Bridge (桥接模式)
  4. JDK 9:NotNullOrElse方法已添加到Objects类
  5. 实用动效UI素材,高效向用户展示你的app功能!
  6. B00004 atoi函数
  7. 简单十步python使用django框架建立博客网站
  8. js手写车牌输入键盘
  9. 高斯滤波详解 附python和matlab高斯滤波代码
  10. vs2015升级旧工程报snprintf已有主体及“int8_t” 重定义
  11. springboot日志配置logback-spring.xml
  12. GiB与GB 存储单位
  13. dba+开源工具:轻量级数据库审计日志平台,违规操作无所遁形(附下载)
  14. adobe登录无法连接服务器未响应,adobe链接不到服务器
  15. 云服务器物理主机的区别,云服务器与物理机的区别
  16. LoadRunner9.1下载与破解
  17. 项目:机器学习+FLD分类+python图像处理mnist数据集
  18. A. chino with string(ac自动机+floyd矩阵快速幂)
  19. 来认识一下这些基于好友关系链和算法推荐的电影发现产品
  20. 三次蝉联!Stratifyd在G2 2021秋季报告中再获“高成长者”荣誉

热门文章

  1. MEF入门之不求甚解,但力求简单能讲明白(四)
  2. 带括号多项式版四则运算
  3. 【转】简明 Python 教程
  4. [ZT]Addison Wesley's Free Chapters and Articles
  5. nginx启动报错 :Failed to start The nginx HTTP and reverse prox...er.
  6. Win10蓝牙鼠标老是断连卡顿的解决方法
  7. linux中忘记mysql用户root密码解决方案
  8. MySQL数据库远程连接很慢的解决方案
  9. 什么是clearfix?
  10. 清除或重新创建Ruby on Rails数据库