C++基础之结构体(原来就是个幼儿园的书包-中学生的书包-小学生的书包-大学生的旅行包或者行李箱)

结构体我说的东西不多,但单独提成一篇文章来讲述的原因是因为有种小悲小喜,不像意外的会了二级指针那种中悲中喜,不像会了多线程那种大悲大喜

如果让你给别人讲一下变量是个什么东西,举个例子,你会举例int还是char,之前的我会int,因为int熟悉啊,熟悉后感觉很简单,拿捏的准一样

结构体很早就知道有这个东西了,很早也会创建,但一直在实践中避免碰到,这几天封装多线程可是用到了很多次,熟悉了也就不怕了

什么是结构体--------------------------------变量的打包(变量可以是同一种类型可以是不同类型,数组只能是同种类型)

结构体干什么用的--------------------------打包变量---------------既然打包,就不止一个变量咯,一个也可以,没必要而已

结构体怎么用---------1.打包一堆变量 2.包里在打个包或者在往里多打几个包的用,就像爱情公寓里吕子乔对美嘉道歉时候送的礼物一样

直接举例说明吧

我要给函数里传一个char一个int变量--void fun(int x,char p)

我也可以用结构体实现上面的需求struct A{ int a; char b;};--------void fun(A *p);我传入这个结构体的指针

我也可以用两个结构体来实现上面的需求struct A{int a;}; struct B{A *p;char b;};------void fun(B *r);我传入B结构体指针,B.p.a点两次来用int变量或者B->p->a指两次

(第三种一般实现你多个对象用到的b不同,a相同,就像我现在封装多线程里面如果卖票,多个线程卖票,卖的票总共就那么多张,但是卖的窗口不一样)

现在理解我标题的含义了吧

(PanPen120原创)

时间: 2024-10-07 04:20:13

C++基础之结构体(原来就是个幼儿园的书包-中学生的书包-小学生的书包-大学生的旅行包或者行李箱)的相关文章

[C/C++基础] 3.结构体、共用体、枚举

概述: 结构体和数组主要有两点不同,首先结构体可以在一个结构中声明不同的数据类型,其次相同结构的结构体变脸是可以相互赋值的. 共用体(联合体)和结构体都是由多个不同的数据类型成员组成,但在任何同一时刻,共用体值存放了一个被选中的成员.而结构体的所有成员都存在. C++的枚举(enum)工具提供了另外一种可以替代const来创建符号常量的方式,枚举表是枚举常量的集合. 3.1 结构体struct 结构体类型变量的定义一般形式为: struct 结构体类型名{ 类型1 成员名1; 类型2 成员名2;

黑马程序员——c语言基础:结构体和枚举---typedef的使用

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 一.什么是结构体 当一个整体由多个数据构成时,我们可以用数组来表示这个整体,但是数组有个特点:内部的每一个元素都必须是相同类型的数据. 在实际应用中,我们通常需要由不同类型的数据来构成一个整体,比如学生这个整体可以由姓名.年龄.身高等数据构成,这些数 据都具有不同的类型,姓名可以是字符串类型,年龄可以是整型,身高可以是浮点型. 为此,C语言专门提供了一种构造类型来解决上述问题,这就是结构体,它

Golang基础之结构体

Go语言中没有"类"的概念,也不支持"类"的继承等面向对象的概念.Go语言中通过结构体的内嵌再配合接口比面向对象具有更高的扩展性和灵活性. 类型别名和自定义类型 自定义类型 在Go语言中有一些基本的数据类型,如string.整型.浮点型.布尔等数据类型, Go语言中可以使用type关键字来定义自定义类型. 自定义类型是定义了一个全新的类型.我们可以基于内置的基本类型定义,也可以通过struct定义.例如: // 将MyInt定义为int类型 type MyInt i

Go语言基础之结构体

Go语言中没有“类”的概念,也不支持“类”的继承等面向对象的概念.Go语言中通过结构体的内嵌再配合接口比面向对象具有更高的扩展性和灵活性. 类型别名和自定义类型 自定义类型 在Go语言中有一些基本的数据类型,如string.整型.浮点型.布尔等数据类型, Go语言中可以使用type关键字来定义自定义类型. 自定义类型是定义了一个全新的类型.我们可以基于内置的基本类型定义,也可以通过struct定义.例如: //将MyInt定义为int类型 type MyInt int 通过Type关键字的定义,

Swift基础(类,结构体,函数)

import Foundation // 创建一个类 class Student { // 属性(类的属性必须赋初值,如果不赋值,需要写自定义方法) var studentName: String var studentAge: Int // 方法 func fallInLove(girlName:String) { print("\(self.studentName)看上隔壁的\(girlName)") } // 构造方法(自定义init方法) init (studentName1:

【Go】语法基础之结构体

结构体的定义很简单: type Vertex struct { X, Y float64 } 可以理解为多个变量的集合. 结构体的使用: 1.直接使用: v := Vertex{1, 2} 或 var v = Vertex{1, 2} 2.通过new关键字: v := new(Vertex) 3.通过指针访问: v := &Vertex{1, 2} 为结构体添加方法: package main import ( "fmt" "math" ) type Ver

黑马程序员— C语言基础之结构体、枚举、预处理、typedef的使用

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 本章我们主要来学习之前所学的复杂数据类型中的同样也很重要的结构体和枚举的知识,以及C语言中的预处理,typedef的使用,简单介绍一下static和extern等一些比较杂的知识.在开始本章的新知识学习之前首先我们来学习一下根据变量的作用域的不同C语言一般把变量分为两种,局部变量和全局变量.下面我们来分别比较和体会一下这两种不同的变量类型: 根据变量的作用域,可以分为: 1. 局部变量: a.

C语言基础_结构体

一.结构体 1)声明 struct 用来声明结构体 作用:管理多个数据信息 struct student{ int num; //成员变量之间用;隔开 int age; char name[30]; float score; }Student;//分号不要忘记 2) 初始化 1.设置初始值使用{} 2.按照成员变量的顺序赋值 3.可以不设置信息,使用{0} Student stu1={1,18,"luofeng",90.0}; Student stu2={2,81,"sunj

【基础】结构体重载,用 char*作为std::map中的key

结构体重载 C++中,结构体是无法进行==,>,<,>=,<=,!=这些操作的,这也带来了很多不方便的地方,尤其是在使用STL容器的时候,如果我们可以往语句中传入结构体,一些事情将会变得很简单. bool operator 运算符 (const 结构体名称 b) const { return(什么时候这个运算符对结构体成立);//注意对此运算符使用this->元素名: } 用 char*作为std::map中的key 首先为什么要用 char*作为std::map中的key