结构体指针
大佬 typedef struct fun{结构体变量
} Fun,*Fun
请问一下Fun 和 * Fun在用法上有什么区别
#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编辑过]