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 ...
随机推荐
- JQuery 操作 checkbox 二次赋值无效 attr ----> prop
CheckBox .attr('checked',false); Chrome和火狐第二次点击无效. 然后解决了把attr 改成了 prop 以后操作属性的时候各位记下,用prop 因为大家用的都是 ...
- Web前端开发的基本要求和认识
Web前端开发技术包括三个要素:HTML.CSS和JavaScript,但随着RIA的流行和普及,Flash/Flex.Silverlight.XML和服务器端语言也是前端开发工程师应该掌握的.Web ...
- UI控件之UITableView的协议方法
<UITableViewDataSource,UITableViewDelegate> //设置表视图的编辑状态 -(void)setEditing:(BOOL)editing anima ...
- RHEL 5 安装gcc
rpm -ivh kernel-headers... rpm -ivh glibc-headers... rpm -ivh glibc-devel... rpm -ivh libgomp.. rpm ...
- $《第一行代码:Android》读书笔记——第6章 数据持久化
主要讲述了Android数据持久化的三种方式:文件存储.SharedPreference存储.SQLite数据库存储. (一)文件存储 其实Android中文件存储方式和Java的文件操作类似,就是用 ...
- 【HackerRank】Service Lane
Calvin is driving his favorite vehicle on the 101 freeway. He notices that the check engine light o ...
- lvds(800*600)
static struct fb_videomode ldb_modedb[] = { 107 107 { 108 + "LDB-SGA", 60, 800, 600, 25132 ...
- unicode和utf8
很多人,即使是有一些项目经验的人,都说过这句话.但是如果深入的理解什么是unicode之后就会知道,原来我们经常说的这句话“unicode字符是2个字节”这句话是有问题的. 要说清楚这个问题,首先就要 ...
- 多校HDU5723 最小生成树+dfs回溯
Abandoned country Time Limit: 8000/4000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others ...
- 考勤助手——基于CS三层结构的子系统设计
因为小组比较倾向于cs分层结构的风格,所以基于对考勤助手最初的体系架构的设计进行了子系统的分层设计,如下图: 1.教务老师安排课程子系统 2.教务老师查询相关信息的子系统 3.任课教师管理考勤子系统 ...