| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1425 人关注过本帖
标题:结构体指针
只看楼主 加入收藏
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: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册: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
快速回复:结构体指针
数据加载中...
 
   



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

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