首页 > 编程语言 > 详细

(C语言)结构体成员的引用->(箭头)和 .(点)

时间:2016-09-05 20:42:21      阅读:161      评论:0      收藏:0      [点我收藏+]

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

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

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

经过实验发现,依然遵循上面的规则即:箭头左边必须是指针,实体一定要用点号引用。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;
}

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

技术分享

 

(C语言)结构体成员的引用->(箭头)和 .(点)

原文:http://www.cnblogs.com/winifred-tang94/p/5843440.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!