结构体指针
大佬 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编辑过]