zoukankan      html  css  js  c++  java
  • C语言小结之结构类型

    C语言小结之结构类型

    @刁钻的游戏

    (1)枚举型类型
    enum COLOR {BLACK,RED,BLUE};
    //声明一种新的数据类型,其值分别为0,1,2但是用BLACK/RED/BLUE代表
    也可以这莫做
    enum COLOR {RED = 1,YELLO,BLUE};//则值为1,2,3
    enum的本质还是int型
    应用:可以表示一列const int,用它来做符号量。

    (2)结构类型
    结构体类型就是一个复合数据类型,就是一个变量,下面包含着一些数据。
    1>结构体声明
    方式一:声明结构体

    struct point{//创建结构体类型
    	int x;
    	int y;
    }
    

    struct point P1;//声明point类型变量 P1

    方式二:单纯想要两个变量,而不想声明这种结构类型

    struct{
    	int x;
    	int y;
    }p1,p2;
    

    方式三:同时做两件事,一则创建结构体变脸类型,二则声明两个结构体变量

    struct point{
    	int x;
    	int y;
    }p1,p2;
    

    2>结构体变量赋值

    struct point p1 = {12,32};
    struct point p2 = {,y=10};//为赋值的默认为0
    注意:前面要跟上struct
    3>结构成员的访问和使用
    使用.域操作符
    p1.x = 2;
    z = p1.y;
    可以对整体赋值,譬如:P1 = (struct point){4,5};

    4>函数中传递的是值不是地址,如果我们想改变本身变量,应该传入地址
    &p1
    p1->x表示P1中的成员变量x


    思想:函数中,传入一个结构体,不如只穿结构体的指针,然后在函数体里面进行使用

    5>结构数组
    point P1[2] = {{1,2},{2,3}};//两个坐标P1[0] = {1,2} P2[1]={2,3}

    print(point *p1)
    {
    	printf("x=%d,y=%d",p1->x,p1->y);
    }
    

    (3)自定义数据类型

    struct创建的自定义数据类型,在声明变量时都要跟上struct
    typedef提供了数据类型别名
    例如
    typedef int LENGTH//表示为int起了个别名叫做LENGTH
    则以后可以这样使用
    LENGH l1,l2;
    所以我们可以用它来这样做

    typedef struct APOINT{
        int x;
        int y;
    } POINT;
    

    他就等效为如下图所示

    typedef <---> POINT//表示为struct 结构体类型创造了POINT变量类型
    以后就可以这样
    POINT P1 ={1,2};


    (4)联合体数据类型
    表示形式:union
    举例:
    union POINT{
    char i;
    int y;
    }
    共用体声明后,实质这块内存的大小是其中包含变量最大的大小,在上述程序中应该是int大小最大,那么他是四个字节大小
    内存中排列是这样的
    i 【 】 ---- ---- ----
    y 【 】【 】【 】【 】
    //【】代表内存占有 ---- 内存不占有
    他们共用一块内存。
    应用:可以利用共用体对长变量进行拆分,拆分成四个char或者二进制进行观察。

  • 相关阅读:
    报表中的图形是怎么做出来的?如何在其中实现地图?
    多维分析的本质计算是什么?能做什么又不能做什么?
    报表工具对比选型系列用例——多源分片报表
    报表工具怎样适应移动端?
    报表工具怎样适应移动端?
    互联网技术部门该如何管理
    更好用 更简单的Java缓存框架 jscache
    古人是怎么排行
    Spark ML 机器学习之Word2Vec
    Spark ML之高级数据源
  • 原文地址:https://www.cnblogs.com/flyingjun/p/5165907.html
Copyright © 2011-2022 走看看