结构体初始化的几种方式

无构造方法的结构体初始化

创建一个结构体
struct STUDENT {string name;int age;string sex;
}
定义时赋值
// 定义时赋值,通过大括号
// 没有构造方法的结构体是不能使用小括号的方式进行赋值的
struct STUDENT stu1 = {"tako", 22, "女"};
定义时乱序赋值(.attribute = value)
// 使用 .= 进行赋值
struct STUDENT stu3 = {.name = "tako",.age = 22,.sex = "女"
};
定义时乱序赋值(attribute : value)
// 使用 : 进行赋值
struct STUDENT stu4 = {name : "tako",age : 22,sex : "女"
};
先创建再赋值
int main() {struct STUDENT student;student.name = "tako";student.age = 22;student.sex = "女";
}

有构造方法的结构体初始化

有构造方法的结构体不能使用乱序赋值,也就是不能针对指定的属性名进行赋值。

创建一个结构体
struct TEACHER {string name;int age;string sex;// 无参构造方法TEACHER() { };// 有参构造方法TEACHER(string name, int age, string sex) : name(name), age(age), sex(sex) { };
};
定义时赋值(跟无构造方法的结构体不同)

与无构造方法的结构体相比,有构造方法的结构体在定义时赋值的方式可以有更多种,不仅可以通过 (attr1, attr2) 也可以通过 {attr1, attr2} 的方式进行赋值。

// 创建老师结构体对象,这个结构体是有构造方法的
struct TEACHER teacher4("tako", 22, "男");
struct TEACHER teacher3 = TEACHER("tako", 22, "男");
struct TEACHER teacher2 = {"tako", 22, "男"};
struct TEACHER *teacher1 = new TEACHER("tako", 22, "男");
先定义再赋值(需要有无参构造方法)
struct TEACHER teacher;
teacher.name = "tako";
teacher.age = 22;
teacher.sex = "男";

结构体初始化的几种方式相关推荐

  1. 嵌套结构体初始化的几种方式

    嵌套结构体初始化的几种方式 #结构体定义 structA define typedef struct {char a;int b;float c; }struct_A_s; structB defin ...

  2. Go结构体初始化的几种方式

    new初始化结构体指针 可以通过使用new关键字对结构体进行实例化,得到的是结构体的地址. 格式如下: package mainimport "fmt"type stu struc ...

  3. C语言结构体初始化的几种方法

    一.介绍 结构体作为数据结构的基础,经常使用,其中初始化也有几种方法,这里详细介绍 二.常规初始化(先定义再初始化) typedef struct {int bandrate;int databits ...

  4. linux c 结构体初始化的四种方法

    定义: struct InitMember {int first:double second:char* third:float four; }; 方法一:定义时赋值 struct InitMembe ...

  5. C语言结构体初始化的四种方法

    定义 struct InitMember {int first:double second:char* third:float four; }; 方法一:定义时赋值 struct InitMember ...

  6. 定义结构体变量的三种方式

    #include <stdio.h>//定义结构体的三种方式,推荐使用第三种//第一种 struct student1 {int age;char name[20];float score ...

  7. 结构体初始化的几种方法

    1.先定义再初始化 struct obj_t {const char *name;int val; };obj_t obj; obj.name = "ABC"; obj.val = ...

  8. 结构体排序的三种方式

    目录 方式1 lambda表达式 方式2 重载小于号 方式3 实现cmp()函数 方式1 lambda表达式 使用lambda表达式来完成sort()函数的第3个参数,十分优雅,强烈推荐. 语法为 [ ...

  9. C\C++ 结构体初始化的四种方法

    --------------------------------------------- -- 时间:2018-12-26 -- 创建人:Ruo_Xiao -- 邮箱:xclsoftware@163 ...

最新文章

  1. 苹果电脑macbook怎样强制关闭软件
  2. opencv图像处理中的一些滤波器+利用滤波器提取条形码(解析二维码)+公交卡倾斜矫正+物体尺寸丈量
  3. 如果还不懂如何使用 Consumer 接口,就来看这篇!
  4. Oracle学习笔记:oracle和serverver在过程sql中通过select对变量进行赋值的区别
  5. Java基于opencv实现图像数字识别(一),java开发面试笔试题
  6. js取thymeleaf值_26、模板引擎thymeleaf
  7. OOP的几个不常用的方法
  8. 看电影学英语:不速之客[The Vistor] [二]
  9. 转-python面试题目集锦(100道部分附答案)
  10. 蒙特利尔问题(三门问题)的解释
  11. 推荐系统:参数协同过滤
  12. html4多文件上传,jQuery h5拖拽多文件上传
  13. Python实现共现语义网络
  14. 可扩展标记语言用户界面语言--XUL的定义及标签(详细)
  15. java中dao_java中的Dao类是什么意思?
  16. linux nginx启动脚本,Nginx启动脚本大家来找茬
  17. 零基础学VB6.0仿真:用四阶龙格库塔法计算传递函数状态方程的结果
  18. 中国咖啡机市场运行现状调研及投资战略分析报告2022-2027年
  19. USG防火墙------内外网用户通过外网IP访问内部服务器(NAT)
  20. C++求1到10这10个数之和

热门文章

  1. 网络训练需要的混合类型数据的组织方式
  2. 解决2bizbox怎么设置付款周期
  3. 深度孪生自注意力网络:小样本条件下的多维时间序列分类
  4. 文件共享服务器(CIFS)
  5. 海宝等离子服务器进不了系统,海宝等离子电源机用切割维修常见故障及处理方法...
  6. 平平淡淡才是真 安安乐乐才是福
  7. 如何在android上支持JNA 知识准备
  8. MalformedURLException:no protocol
  9. npm包前的@ 是什么意思
  10. SCSS--SCSS相关介绍