• 结构体、共用体、指针


    union testc
    {
    	int ua;
    	char tmp[4];
    };
    struct testb
    {
    	int pc;
    	int pd;
    };
    struct testa
    {
    	struct testb test;
    	struct testb* ptestb;
    	union testc utest;
    	int pa;
    	int pb;
    };
    int main()
    {
    	struct testa* abuff;
    	int num;
    
    	abuff = (struct testa*)malloc(sizeof(struct testa));
    	abuff->test.pd = 10;					//结构体中嵌套结构体成员时用'.'
    	abuff->ptestb = &abuff->test;			//结构体中嵌套结构体指针成员时用'->'指向被嵌套的结构体指针的成员
    	abuff->utest.tmp[3] = abuff->ptestb->pd;//结构体中包含共用体时用'.'来指向共用体成员,若共用体中有结构体成员也需要用'.'访问子成员
    	num = abuff->utest.ua;					//
    }
    上面的代码是分析结构体中嵌套结构体或共用体时,定义一个结构体指针时怎样指向其结构体或共用体成员,是用'.',还是用'->',我们都知道结构体指针是用'->'来指向其成员的,如果成员是结构体或共用体时会怎样?如果共用体中又包含结构体时会怎样,结构体中包含结构体指针时有会怎样,通过上面的例子,我们可以看出,结构体指针对于其结构中的成员是用'->',而如果其成员为结构体、共用体或结构体指针等形式时,其成员指向他们的成员变量是按照原来的指向方式的,并不受其母体是结构体指针的形式所影响的。
  • 相关阅读:
    如何保存一张网页上的图片(C#)到本地计算机上
    SQL Server2005常用基本管理操作
    C#保存图片到数据库,读取图片显示
    简析正则表达式
    HDU 变形课
    HDU 1272 小希的迷宫
    HDU 1856 More is better
    POJ 1269 Intersecting Lines
    HDU Football Score
    HDU 1213 How Many Tables
  • 原文地址:https://www.cnblogs.com/longbiao831/p/4556247.html
Copyright © 2020-2023  润新知