C++之结构体struct
原创博客,转载请注明出处!
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的更多相关文章
- C语言结构体-struct
知识点: 1)结构体的定义. 2)结构体的sizeof. 3) 结构体的指针. 1) 结构体的定义: 在逻辑上有一定关联的多个数据类型做为一整体进行操作的数据结构,它的关键字是struct.下面我将 ...
- 内核中用于数据接收的结构体struct msghdr(转)
内核中用于数据接收的结构体struct msghdr(转) 我们从一个实际的数据包发送的例子入手,来看看其发送的具体流程,以及过程中涉及到的相关数据结构.在我们的虚拟机上发送icmp回显请求包,pin ...
- Swift中元组(Tuples),结构体(Struct),枚举(Enums)之间的区别
Swift有许多种存储数据方式,你可以用枚举(enums),元组(tuples),结构体(structs),类(classes),在这篇文章中我们将比较枚举.元组.结构体之间区别,首先从最简单的开始- ...
- C语言 - 结构体(struct)比特字段(:) 详细解释
结构体(struct)比特字段(:) 详细解释 本文地址: http://blog.csdn.net/caroline_wendy/article/details/26722511 结构体(struc ...
- Go语言学习笔记(四)结构体struct & 接口Interface & 反射
加 Golang学习 QQ群共同学习进步成家立业工作 ^-^ 群号:96933959 结构体struct struct 用来自定义复杂数据结构,可以包含多个字段(属性),可以嵌套: go中的struc ...
- 结构体(struct)大小
结构体(struct)大小 本文参考链接:C语言结构体(struct)常见使用方法,链接中的实例代码经实践有几处不准确,本文在引用时已做更改 注意:在结构体定义时不能申请空间(除非是结构体变量),不可 ...
- 结构体struct sockaddr_in, struct sockaddr,struct in_addr
一.结构体 struct sockaddr_in, struct sockaddr, struct in_addr struct sockaddr_in, struct sockaddr,str ...
- GO开发[五]:golang结构体struct
Go结构体struct Go语言的结构体(struct)和其他语言的类(class)有同等的地位,但Go语言放弃了包括继承在内的大量面向对象特性,只保留了组合(composition)这个最基础的特性 ...
- 结构体struct、联合体union、枚举类型enum
1.c语言中的类型 1)内置类型——char,short,int,float,double: 2)用户自定义类型(UDT)——struct结构体,union联合体,enum枚举类型 2.内存对齐 2. ...
- C++/C#:类Class与结构体Struct的区别
C++中: 默认的访问控制.继承访问权限不同:struct时public的,class时 private的: 其它基本一样. C#中: struct是值类型,class是引用类型的: struct S ...
随机推荐
- Amazon2014在线笔试 第三题
问题描述: 算法分析: s1:层数对齐:分别求两个数所在的层(l1,l2),把层数大的(假设l2>l1)先往上找父节点,从而对齐到l1层: s2:两个数同时往上找, 直到找到公共的父节点(一定能 ...
- Eclipse Find/Replace
1.Eclipse内容助手 选中Regular expressions,使用正则表达式进行匹配.图中出现了小黄灯,Ctrl+Space显示出帮助信息. 2.Wrap search(循环检索)选中后,检 ...
- uuid的使用
1.mysql中直接使用uuid()函数,可以生成一个随机的uuid 正常的uuid是36位长度的,其中有4个字符是‘-’,在mysql中可以使用replace()函数来替换‘-’ insert in ...
- active scaffold
模板文件路径:/.rvm/gems/ruby-2.2.3/gems/active_scaffold-3.5.3/app/views/active_scaffold_overrides
- WebSocket 初体验
其实老早就觊觎 Socket 这碗美食了,在 WebSocket 发出后更是心潮澎湃... 奈何这需要后端同志的帮助,使得至今才得以品尝.(当然本文也只涉及前端部分) 以前想监听其他设备变化,大屏幕交 ...
- debian下使用dynamic printk分析usb网卡驱动
在<debian下使用dynamic printk分析usb转串口驱动执行流程>中使用了usb转串口,当前例子使用usb网卡分析驱动(dm9601芯片). 仍然需要使能dynamic pr ...
- INSPIRED启示录 读书笔记 - 第28章 创业型公司的产品管理
产品设计方式 第一步:创业初期只设三个职位,产品经理.交互设计师和原型开发人员(职位可以兼任) 第二步:快速展开产品设计(高保真原型),邀请真实的目标用户验证产品原型,迭代修改 第三步:随着迭代的深入 ...
- mysql创建定时执行存储过程任务实现订单定时关闭
CREATE PROCEDURE `tableName`.`procedureName`() LANGUAGE SQL NOT DETERMINISTIC CONTAINS SQL SQL SECUR ...
- MapReduce-二进制输入
Hadoop的MapReduce不只是可以处理文本信息,它还可以处理二进制格式的数据1. 关于SequenceFileInputFormat类Hadoop的顺序文件格式存储二进制的键/值对的序列.由于 ...
- Spring初学之使用JdbcTemplate
Spring中使用JdbcTemplate.JdbcDaoSupport和NamedParameterJdbcTemplate来操作数据库,但是JdbcTemplate最常用,最易用. jdbc.pr ...