结构体指针和结构体中的指针的区别

如题所述

1、针对的数据类型不同:

结构体指针:结构体指针对变量。

结构体中的指针:结构体中的指针指成员。

2、针对的含义不同:

结构体指针:指向结构体类型的指针。

结构体中的指针:指成员指针。

3、用法不同:

结构体指针:

struct A{ int a;  flaot b;};struct A m,*p=&m;   

p就是struct A类型的结构体指针,指向了同类型的结构体变量m。

结构体中的指针:

struct B

{ int a;  float *b;  struct B *next;};struct B m,n; float bb=1.1;m.b=&bb;m.next=&n;

b成员是指float类型的指针,next成员是指struct B类型的指针。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-02-27

结构体指针是指指向结构体类型变量的指针。

如:

struct A
{ int a;
  flaot b;
};
struct A m,*p=&m;

这里的p就是struct A类型的结构体指针,指向了同类型的结构体变量m;有这个指向操作后,以后用m和用*p是一样的。


结构体中的指针是指成员指针。

如:

struct B
{ int a;
  float *b;
  struct B *next;
};
struct B m,n; 
float bb=1.1;
m.b=&bb;
m.next=&n;

这里的b成员是指float类型的指针,next成员是指struct B类型的指针。

本回答被网友采纳
第2个回答  推荐于2017-11-22
如果有个叫做 abc 的结构体,结构体指针就是 abc *
结构体中的指针,就是它有个成员是指针
struct abc
{
int *haha; /* 结构体中的指针 */

};本回答被提问者采纳
第3个回答  2018-03-10
这里的b成员是指float类型变量的指针,next成员是指struct B类型变量的指针。
float、struct B都只是一种数据类型,是不占用内存的,故没有指针;
只有float或struct B定义的变量才会有指针(如:float a;a为变量就占内存,就有地址即指针)
相似回答