欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C++之结构体struct

程序员文章站 2022-04-03 23:38:24
结构体类型的声明;结构体类型变量的定义和初始化;结构体类型变量和结构体类型变量的成员引用;结构体类型数据和指向结构体变量的指针构成链表 ......

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

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.用结构体变量和指向结构体变量的指针构建链表

C++之结构体struct
  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 
View Code