标题:结构体指针
只看楼主
li384022
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:102
专家分:176
注 册:2017-12-29
结帖率:100%
已结贴  问题点数:20 回复次数:3 
结构体指针
大佬     typedef struct fun{
                          结构体变量
                            } Fun,*Fun
   请问一下Fun 和 * Fun在用法上有什么区别
           
搜索更多相关主题的帖子: 结构体 指针 Fun 用法 区别 
2018-02-06 17:40
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:7 
typedef struct fun
{
   
} Fun, *Fun;
这样可以吗?
这样吧:
typedef struct fun
{
   
} Fun, *PFun;
一个是结构类型,一个是结构指针类型。
2018-02-06 18:01
kin3z
Rank: 5Rank: 5
等 级:职业侠客
威 望:4
帖 子:157
专家分:390
注 册:2011-4-24
得分:7 
以下为本人测试数据,最后的指针输出就可以看出区别。
程序代码:
#include <stdio.h>
#include <math.h>

typedef struct fun{
    int x;
} Fun,*PFun;

int main(int argc, char **argv){
    Fun a;
    PFun b;
    a.x = 10;
    b->x = 20;
    printf("x = %d ,  Fun= %p\n",a.x,&a);
    printf("x = %d ,*PFun= %p\n",b->x,&b);
    *b = a;
    printf("a = b , x = %d ,  Fun= %p\n",a.x,&a);
    printf("a = b , x = %d ,*PFun= %p\n",b->x,&b);
    b->x = 30;
    a = *b;
    printf("a = b , x = %d ,  Fun= %p\n",a.x,&a);
    printf("a = b , x = %d ,*PFun= %p\n",b->x,&b);
    
    printf("a = %p , b = %p , *b = %p\n",a,b,*b);    //这里输出为:a = 0x1e , b = 0x7ffce07f86c0 , *b = 0x1e
    //以上看出,结构体相互赋值的可以的,地址在0x1e附近,至于*PFun来说,则是0x7ffce07f86c0的距离,可理解为指向结构体的指针,于是结构体的申明可以理解为Fun为申明结构体后的结构体名,而*PFun为申明结构体结构后的结构体的指针。

    //补充失误,*PFun是指针,需要赋值才能使用,以上测试的b亦然,只是一个指向结构体结构的指针。
    return 0;
}



[此贴子已经被作者于2018-2-7 10:54编辑过]

2018-02-07 10:48
lulipro
Rank: 2
等 级:论坛游民
威 望:1
帖 子:11
专家分:60
注 册:2016-4-5
得分:7 
你提问中的代码有问题。
2018-02-08 18:53



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-484650-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.131287 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved