C++之结构体struct

2018-06-17 21:07:26来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

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

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 
View Code

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:简单选择排序算法的C++实现

下一篇:《C++ Primer Plus》读书笔记之——处理数据