zoukankan      html  css  js  c++  java
  • C语言的结构体的具体作用是?

    在实际问题中,一组数据往往具有不同的数据类型。例如,在学生登记表中,姓名应为字符型;学号可为整型或字符型;年龄应为整型;性别应为字符型;成绩可为整型或实型。显然不能用一个数组来存放这一组数据。因为数组中各元素的类型和长度都必须一致,以便于编译系统处理。为了解决这个问题,C语言中给出了另一种构造数据类型——“结构(structure)”或叫“结构体”。 它相当于其它高级语言中的记录。“结构”是一种构造类型,它是由若干“成员”组成的。每一个成员可以是一个基本数据类型或者又是一个构造类型。结构既是一种“构造”而成的数据类型,那么在说明和使用之前必须先定义它,也就是构造它。如同在说明和调用函数之前要先定义函数一样。
    让编程序的人自定义一个数据类型。

    //
    //  main.c
    //  结构体
    //
    //  Created by udc on 2021/7/12.
    /*
     1. 什么是结构体?
     结构体和数组很像,都是用于存储一组数据的
     但是数组存储的是一组相同类型的数据
     结构体存储的是一组不通过类型的数据
     
     2. 如何定义结构体
     struct 结构体名称{
        数据类型 属性名称;
        数据类型 属性名称;
        ...
     };
     
    3. 如何定义结构体变量
     3.1. struct 结构体名称 结构体变量名称;
     3.2. 直接在定义结构体后面定义结构体变量
     3.3. 直接在定义结构体后面定义结构体变量,不要结构体名称
     
     
    4. 初始化
     4.1. 定义变量时初始化, 注意对应
     4.2. 指定属性,一一赋值
     
     
     5. 结构体和数组的区别?
     
     6. 结构体作用域也分全局和局部
     
     7. 结构体的存储细节
     
     */
    
    #include <stdio.h>
    
    int main(int argc, const char * argv[]) {
        // insert code here...
        struct Person{
            char *name;
            int age;
            float score;
        };
        
        struct Person per;
        per.name = "疾风剑豪";
        
        printf("per 名字 = %s 
    ",per.name);
        
        
        struct Man{
            char *name;
            int age;
            float score;
        } man;
        printf("man 名字 = %s 
    ",man.name);
        
        
        struct{
            char *name;
            int age;
            float score;
        } wonman;
        printf("wonman 名字 = %s 
    ",wonman.name);
        
        
        struct Person per2 = {"压缩", 12, 59.0};
        printf("per2 名字 = %s 
    ",per2.name);
        
        
        struct Person per3 = {.name = "盲僧", 12, 59.0};
        printf("per3 名字 = %s 
    ",per3.name);
        
    //数组不能先定义,再一次性初始化,但是结构体可以, 需要强制类型转换
    //    int arr[3];
    //    arr = {1,2,3};
        
        
        struct Animal{
            char *name;
            int age;
        };
        struct Animal ani;
        ani = (struct Animal){"Dog", 5};
        
        return 0;
    }
    
    此文仅为鄙人学习笔记之用,朋友你来了,如有不明白或者建议又或者想给我指点一二,请私信我。liuw_flexi@163.com/QQ群:582039935. 我的gitHub: (学习代码都在gitHub) https://github.com/nwgdegitHub/
  • 相关阅读:
    gil
    异步
    字符串 最长回文字串
    字符串 最长公共前缀
    数组 合并区间
    python 排序
    2021.9.3 阿里笔试AK贴
    SIP协议详解
    fiddler抓包各字段的含义
    常见的HTTP状态码列表
  • 原文地址:https://www.cnblogs.com/liuw-flexi/p/10307434.html
Copyright © 2011-2022 走看看