原创博客,转载请注明出处!

1.简介

# C++提供一些基本的数据类型(int,float,double,char等),但由于程序处理的问题通常较复杂,基本的数据类型不能满足程序需要,因此C++允许用户根据需要自定义数据类型。C/C++的结构体是包含相同/不同数据类型数据项的组合项,关键字struct标识结构体。

2.结构体类型的声明

# 如果在文件开头声明结构体类型,则所有的函数利用该结构体类型定义变量。

# 如果在函数中声明结构体类型,则只有本函数可以使用该结构体类型定义变量。

  1 struct 结构体类型名
2 {
3 成员名;
4 };

3.结构体类型变量的定义和初始化

#先声明结构体类型后定义结构体变量

  1 struct Student
2 {
3 int age;
4 char sex;
5 };
6 Student student1={11,‘女’};

注意:Student是类型名,student1是变量名。声明结构体类型的时候,编译器不分配内存;定义结构体变量的时候,编译器分配内存。

4.引用结构体变量的成员

# 通过成员运算符引用结构体变量的成员

  1 // 定义结构体变量同时初始化
2 Student stu1={11,'女'};
3
4 // 引用结构体变量成员
5 cout<<stu1.age<<endl;

# 通过指向结构体变量的指针引用结构体变量的成员

  1 Student stu1={11,'女'};
2 Student *p = &stu1;
3 cout<<p->age<<endl;

5.用结构体变量和指向结构体变量的指针构建链表

  1 #include <iostream>
2 using namespace std;
3
4 // 结构体类型声明(链表结点)
5 struct Student
6 {
7 int num;
8 int age;
9 Student *next;
10 };
11
12 void LinkedList()
13 {
14 // 学生结点1
15 Student stu1;
16 stu1.num=101;
17 stu1.age=21;
18
19 // 学生结点2
20 Student stu2;
21 stu2.num=102;
22 stu2.age=22;
23
24 // 学生结点3
25 Student stu3;
26 stu3.num=103;
27 stu3.age=23;
28
29 // 链表头结点;
30 Student *head=&stu1;
31
32 // 学生结点建立链接
33 stu1.next = &stu2;
34 stu2.next = &stu3;
35 stu3.next = NULL;
36
37 // 打印链表
38 Student *p=&stu1;
39
40 while(p!=NULL)
41 {
42 cout<<p->num<<endl;
43 p = p->next;
44 }
45 }
46 int main()
47 {
48 LinkedList();
49 return 0;
50 }
51

C++之结构体struct的更多相关文章

  1. C语言结构体-struct

    知识点: 1)结构体的定义. 2)结构体的sizeof. 3)  结构体的指针. 1) 结构体的定义: 在逻辑上有一定关联的多个数据类型做为一整体进行操作的数据结构,它的关键字是struct.下面我将 ...

  2. 内核中用于数据接收的结构体struct msghdr(转)

    内核中用于数据接收的结构体struct msghdr(转) 我们从一个实际的数据包发送的例子入手,来看看其发送的具体流程,以及过程中涉及到的相关数据结构.在我们的虚拟机上发送icmp回显请求包,pin ...

  3. Swift中元组(Tuples),结构体(Struct),枚举(Enums)之间的区别

    Swift有许多种存储数据方式,你可以用枚举(enums),元组(tuples),结构体(structs),类(classes),在这篇文章中我们将比较枚举.元组.结构体之间区别,首先从最简单的开始- ...

  4. C语言 - 结构体(struct)比特字段(:) 详细解释

    结构体(struct)比特字段(:) 详细解释 本文地址: http://blog.csdn.net/caroline_wendy/article/details/26722511 结构体(struc ...

  5. Go语言学习笔记(四)结构体struct & 接口Interface & 反射

    加 Golang学习 QQ群共同学习进步成家立业工作 ^-^ 群号:96933959 结构体struct struct 用来自定义复杂数据结构,可以包含多个字段(属性),可以嵌套: go中的struc ...

  6. 结构体(struct)大小

    结构体(struct)大小 本文参考链接:C语言结构体(struct)常见使用方法,链接中的实例代码经实践有几处不准确,本文在引用时已做更改 注意:在结构体定义时不能申请空间(除非是结构体变量),不可 ...

  7. 结构体struct sockaddr_in, struct sockaddr,struct in_addr

    一.结构体 struct sockaddr_in,  struct sockaddr,  struct in_addr struct sockaddr_in,  struct sockaddr,str ...

  8. GO开发[五]:golang结构体struct

    Go结构体struct Go语言的结构体(struct)和其他语言的类(class)有同等的地位,但Go语言放弃了包括继承在内的大量面向对象特性,只保留了组合(composition)这个最基础的特性 ...

  9. 结构体struct、联合体union、枚举类型enum

    1.c语言中的类型 1)内置类型——char,short,int,float,double: 2)用户自定义类型(UDT)——struct结构体,union联合体,enum枚举类型 2.内存对齐 2. ...

  10. C++/C#:类Class与结构体Struct的区别

    C++中: 默认的访问控制.继承访问权限不同:struct时public的,class时 private的: 其它基本一样. C#中: struct是值类型,class是引用类型的: struct S ...

随机推荐

  1. PAT 天梯赛 L1-026. I Love GPLT 【水】

    题目链接 https://www.patest.cn/contests/gplt/L1-026 AC代码 #include <iostream> #include <cstdio&g ...

  2. Linux基础四---系统监控&硬盘分区

    ---恢复内容开始--- 一系统分区 1.top [参数] -b 批处理 -c 显示命令完全模式 -I 忽略失效过程 -s 保密模式 -S 累积模式 -i<时间> 设置间隔时间 -u< ...

  3. 第八篇、正则表达式 re模块

    一.常用匹配模式 #!/usr/bin/env python # -*- coding:utf-8 -*- import re #贪婪匹配:从后面开始 #()只需要提取括号中的内容,顺序从外到内 li ...

  4. [RK3288][Android6.0] USB OTG模式及切换【转】

    本文转载自:https://blog.csdn.net/kris_fei/article/details/78620960 Platform: RK3288 OS: Android 6.0 Kerne ...

  5. gzip: stdin: unexpected end of file tar: Unexpected EOF in archive

    1.问题描述: 今天解压tar包遇到这样一个问题 使用命令:tar -zxvf  xxxxx.tar.gz gzip: stdin: unexpected end of filetar: Unexpe ...

  6. 为什么原生的servlet是线程不安全的而Struts2是线程安全的?

    因为原生的servlet在整个application生命周期中,只在初次访问的时候实例化一次,以后都不会再实例化,只会调用Server方法进行响应,所以如果在servlet类中定义成员变量,那么就会让 ...

  7. AJAX跨域资源共享 CORS 详解

    CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing). 它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从 ...

  8. wareshark网络协议分析之ARP

    一.ARP协议简介 简单的说ARP协议就是实现ip地址到物理地址的映射.当一台主机把以太网数据帧发送到位于同一局域网上的另一台主机时,是根据48bit的以太网地址(物理地址)来确定网络接口的. ARP ...

  9. HBase-存储-HFile格式

    HBase-存储-HFile格式 实际的存储文件功能是由HFile类实现的,它被专门创建以达到一个目的:有效地存储HBase的数据.它们基于Hadoop的TFile类,并模仿Google的BigTab ...

  10. jquery02-jQuery效果=隐藏和显示+切换+淡入淡出+滑动+动画+回调+链

    隐藏和显示 $(selector).hide(speed,callback);  $(selector).show(speed,callback);   可选的 speed 参数规定隐藏/显示的速度, ...