• 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 
    View Code
  • 相关阅读:
    02_Python基础
    python 学习网站
    Docker搭建MySQL服务
    Ubuntu源、Python虚拟环境及pip源配置
    Ubuntu18.04完全卸载mysql5.7并安装mysql8.0的安装方法
    MySQL 数据库
    数据库连接池
    ssm整合开发的相关步骤和增删改查
    Springmvc执行流程
    资源映射之----在springmvc中如何访问WEB-INF目录下的文件和系统文件夹中的文件
  • 原文地址:https://www.cnblogs.com/wanglei5205/p/8502548.html
Copyright © 2020-2023  润新知