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 \n",per.name);
    
    
    struct Man{
        char *name;
        int age;
        float score;
    } man;
    printf("man 名字 = %s \n",man.name);
    
    
    struct{
        char *name;
        int age;
        float score;
    } wonman;
    printf("wonman 名字 = %s \n",wonman.name);
    
    
    struct Person per2 = {"压缩", 12, 59.0};
    printf("per2 名字 = %s \n",per2.name);
    
    
    struct Person per3 = {.name = "盲僧", 12, 59.0};
    printf("per3 名字 = %s \n",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;
}

 

posted @ 2019-01-23 10:10  liuw_flexi  阅读(2186)  评论(0编辑  收藏  举报