结构体初始化的几种方式
结构体初始化的几种方式
无构造方法的结构体初始化
创建一个结构体
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 = "男";
结构体初始化的几种方式相关推荐
- 嵌套结构体初始化的几种方式
嵌套结构体初始化的几种方式 #结构体定义 structA define typedef struct {char a;int b;float c; }struct_A_s; structB defin ...
- Go结构体初始化的几种方式
new初始化结构体指针 可以通过使用new关键字对结构体进行实例化,得到的是结构体的地址. 格式如下: package mainimport "fmt"type stu struc ...
- C语言结构体初始化的几种方法
一.介绍 结构体作为数据结构的基础,经常使用,其中初始化也有几种方法,这里详细介绍 二.常规初始化(先定义再初始化) typedef struct {int bandrate;int databits ...
- linux c 结构体初始化的四种方法
定义: struct InitMember {int first:double second:char* third:float four; }; 方法一:定义时赋值 struct InitMembe ...
- C语言结构体初始化的四种方法
定义 struct InitMember {int first:double second:char* third:float four; }; 方法一:定义时赋值 struct InitMember ...
- 定义结构体变量的三种方式
#include <stdio.h>//定义结构体的三种方式,推荐使用第三种//第一种 struct student1 {int age;char name[20];float score ...
- 结构体初始化的几种方法
1.先定义再初始化 struct obj_t {const char *name;int val; };obj_t obj; obj.name = "ABC"; obj.val = ...
- 结构体排序的三种方式
目录 方式1 lambda表达式 方式2 重载小于号 方式3 实现cmp()函数 方式1 lambda表达式 使用lambda表达式来完成sort()函数的第3个参数,十分优雅,强烈推荐. 语法为 [ ...
- C\C++ 结构体初始化的四种方法
--------------------------------------------- -- 时间:2018-12-26 -- 创建人:Ruo_Xiao -- 邮箱:xclsoftware@163 ...
最新文章
- 苹果电脑macbook怎样强制关闭软件
- opencv图像处理中的一些滤波器+利用滤波器提取条形码(解析二维码)+公交卡倾斜矫正+物体尺寸丈量
- 如果还不懂如何使用 Consumer 接口,就来看这篇!
- Oracle学习笔记:oracle和serverver在过程sql中通过select对变量进行赋值的区别
- Java基于opencv实现图像数字识别(一),java开发面试笔试题
- js取thymeleaf值_26、模板引擎thymeleaf
- OOP的几个不常用的方法
- 看电影学英语:不速之客[The Vistor] [二]
- 转-python面试题目集锦(100道部分附答案)
- 蒙特利尔问题(三门问题)的解释
- 推荐系统:参数协同过滤
- html4多文件上传,jQuery h5拖拽多文件上传
- Python实现共现语义网络
- 可扩展标记语言用户界面语言--XUL的定义及标签(详细)
- java中dao_java中的Dao类是什么意思?
- linux nginx启动脚本,Nginx启动脚本大家来找茬
- 零基础学VB6.0仿真:用四阶龙格库塔法计算传递函数状态方程的结果
- 中国咖啡机市场运行现状调研及投资战略分析报告2022-2027年
- USG防火墙------内外网用户通过外网IP访问内部服务器(NAT)
- C++求1到10这10个数之和