zoukankan      html  css  js  c++  java
  • (C语言)结构体成员的引用->(箭头)和 .(点)

    关于结构体成员的引用有这样的规律:

    箭头(->):左边必须为指针;
    点号(.):左边必须为实体。

    那么如果一个结构体指针引用一个成员,这个成员又是一个结构体(并且是一个实体),那么如果要引用这个成员的成员要怎么办呢?

    经过实验发现,依然遵循上面的规则即:箭头左边必须是指针,实体一定要用点号引用。for example C->student.age

    eg.

    一开始都用箭头即c->s1->age

    #include "stdio.h"
    int main()
    {
        struct student{
            int age;
            int class_;
        };
        struct class2{
            struct student s1;
        };
        struct class2 *c;
        struct class2 cc={
        .s1={
            .age=9,
            .class_=2
        }
        };
        c=&cc;
        printf("%d",c->s1->age);
        return 0;
    }

    出现错误如下:

    如果把代码改为c->s1.age,代码如下:

    #include "stdio.h"
    int main()
    {
        struct student{
            int age;
            int class_;
        };
        struct class2{
            struct student s1;
        };
        struct class2 *c;
        struct class2 cc={
        .s1={
            .age=9,
            .class_=2
        }
        };
        c=&cc;
        printf("%d",c->s1.age);
        return 0;
    }

    则编译通过得到运行结果:

  • 相关阅读:
    react-webpack-express
    React总结和遇到的坑
    vue+node+mongodb实现的功能
    webpack整体了解
    webpack踩坑
    深入了解MongoDB
    实现pdf word在线浏览和下载
    node实现爬虫
    火客声音分析
    抖音二婷衣橱分析
  • 原文地址:https://www.cnblogs.com/winifred-tang94/p/5843440.html
Copyright © 2011-2022 走看看