zoukankan      html  css  js  c++  java
  • 学点 C 语言(25): 数据类型 结构数组与结构指针


    1. 结构数组:
    #include <stdio.h>
    
    int main(void)
    {
        struct Rec {int x,y;};
    
        struct Rec rs[10];
        
        size_t i;
        for (i = 0; i < sizeof rs/sizeof rs[0]; i++) {
            rs[i].x = i;
            rs[i].y = i * 2;    
        }
    
        for (i = 0; i < sizeof rs/sizeof rs[0]; i++) {
            printf("%d, %d\n", rs[i].x, rs[i].y);    
        }
        
        getchar();
        return 0;
    }
    
    #include <stdio.h>
    
    int main(void)
    {
        struct Rec {
            char  name[12];
            short age;
        } rs[3] = {
                    {"AAA", 11},
                    {"BBB", 22},
                    {"CCC", 22}
                  };
    
     
        size_t i;
    
        for (i = 0; i < sizeof rs/sizeof rs[0]; i++) {
            printf("%s, %d\n", rs[i].name, rs[i].age);    
        }
        
        getchar();
        return 0;
    }
    

    2. 结构指针指向已存在的结构数组:
    #include <stdio.h>
    
    int main(void)
    {
        struct Rec {
            char  name[12];
            short age;
        } rs[3] = {
                    {"AAA", 11},
                    {"BBB", 22},
                    {"CCC", 22}
                  };
    
        struct Rec *p = rs;
     
        printf("%s, %d\n", p->name, p->age);
        printf("%s, %d\n", (p+1)->name, (p+1)->age);
        printf("%s, %d\n", (p+2)->name, (p+2)->age);
        
        getchar();
        return 0;
    }
    

    3. 结构指针(单个结构):
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    int main(void)
    {
        struct Rec {
            char  name[12];
            short age;
        };
    
        struct Rec *p = NULL;
     
        p = (struct Rec *)malloc(sizeof(struct Rec));
    
        stpcpy(p->name, "ABC");
        p->age = 99;
    
        printf("%s, %d\n", p->name, p->age);
        printf("%s, %d\n", (*p).name, (*p).age);
    
        free(p);     
        
        getchar();
        return 0;
    }
    

    4. 结构指针(多个结构):
    #include <stdio.h>
    #include <stdlib.h>
    
    int main(void)
    {
        struct Rec {
            int x;
            int y;
        } *p;
    
        size_t i, count = 10;
    
        p = (struct Rec *)malloc(sizeof(struct Rec)*count);
    
        for (i = 0; i < count; i++) {
            (p+i)->x = i;
            (p+i)->y = i * i;
        }
    
        for (i = 0; i < count; i++) {
            printf("%d, %d\n", (p+i)->x, (p+i)->y);    
        }
    
        free(p);     
        
        getchar();
        return 0;
    }
    

    5. 连续的多个结构不就是结构数组了吗?(同上例)
    #include <stdio.h>
    #include <stdlib.h>
    
    int main(void)
    {
        struct Rec {
            int x;
            int y;
        } *p;
    
        size_t i, count = 10;
    
        p = (struct Rec *)malloc(sizeof(struct Rec)*count);
    
        for (i = 0; i < count; i++) {
            p[i].x = i;
            p[i].y = i * i;
        }
    
        for (i = 0; i < count; i++) {
            printf("%d, %d\n", p[i].x, p[i].y);    
        }
    
        free(p);     
        
        getchar();
        return 0;
    }
    

  • 相关阅读:
    Zepto swipe 无效(坑)
    Zepto.js-Ajax 请求
    Zepto.js-事件处理
    excel 大文件解析原理实现
    springboot 集成J2Cache
    springboot 单元测试 指定启动类
    springboot 解决 数字长度过长导致JS精度丢失问题
    JS 基本操作
    VUE 动态菜单管理
    VUE router-view key 属性解释
  • 原文地址:https://www.cnblogs.com/del/p/1343162.html
Copyright © 2011-2022 走看看