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

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. 自制Javascript浮动广告

    <%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb ...

  2. PAT 天梯赛 L1-024. 后天 【取余】

    题目链接 https://www.patest.cn/contests/gplt/L1-024 题意 给出一个数,表示星期几,输出后天是星期几 思路 取余的时候要小心点 AC代码 #include & ...

  3. TOGAF和BABOK

  4. 查看linux系统版本信息(Oracle Linux、Centos Linux、Redhat Linux、Debian、Ubuntu)

    一.查看Linux系统版本的命令(3种方法) 1.cat /etc/issue,此命令也适用于所有的Linux发行版. [root@S-CentOS home]# cat /etc/issue Cen ...

  5. Tooltip表单验证的注册表单

    在线演示 本地下载

  6. php数组函数-array_combine()

    array_combine()函数通过合并两个数组来创建一个新数组,其中一个数组是键名,另一个数组的值为键值. 如果其中一个数组为空,或者两个数组的元素个数不同,则该函数返回 false. array ...

  7. linux usb简介

    参考书:<linux device drivers>.<usb 2.0规范> <usb3.1规范><usb白皮书> 以linux为例来说明usb系统. ...

  8. ubuntu 下使用vi时方向键乱码,退格键不能使用

    ubuntu 下使用vi时方向键乱码,退格键不能使用的解决方法 问题表现:Ubuntu下,初始使用vi,编辑模式下使用方向键的时候,并不会使光标移动,而是在命令行中出现A B C D 之类的字母,并且 ...

  9. python基础语法学习常见小问题

    说明:我是最近觉得python在完成很多工作中方便使用而且功能强大,想突击学习一下.用的是廖雪峰老师的教程,学习python3.X.这里是廖雪峰老师的网站链接: http://www.liaoxuef ...

  10. sqlserver的疑难杂症解析

    1.电脑修改ip后ssms通过ip访问失败 通过计算机名可以访问成功,但通过修改后的ip访问却失败了! 解决方法:打开Sql Server Configuration Manager -> SQ ...