结构体指针成员所指向变量,这个说法理解起来有点困难。
创新互联公司公司2013年成立,是专业互联网技术服务公司,拥有项目成都网站建设、成都网站设计网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元双城做网站,已为上家服务,为双城各地企业和个人服务,联系电话:13518219792
从字面意思上看断句,有如下几种可能:
首先定义一个包含所有可能情况的结构体:
struct test
{
int a;
int *p;
};
struct test t1, *t2;1
结构体/指针成员/所指向的变量。
结构体中有指针成员,然后要访问这个结构体成员指向的变量值。
那么可以*(t1.p)这种方式对p取值。
2
结构体指针/成员/所指向变量。
这种情况有两种方法可以访问:
*(t2-p)
或者
*(*(t2).p)
效果是一样的。
3
描述有误,实际为:
结构体指针所指向/成员变量。
同样有两种方法可以使用:
t2-p
或者
(*t2).p
访问结构体元素,根据结构体变量的类型,有两种方法。
1 变量为结构体对象。
如果变量a为结构体对象,且结构体内有元素b,那么可以使用a.b的方式访问元素。
2 变量为结构体指针。
如果变量a为结构体指针,且结构体内有元素b,那么可以使用a-b的方式访问元素。
需要注意的是,结构体最初为C语言的概念,C++继承了该类型并进行了扩展。在C++中,结构体与类(class)是相似的,元素同样可以设置属性,如果被设置为private属性,那么结构体成员函数和友元函数外的其它函数无法访问该元素
指向结构体成员运算符 : (-) 从外部看是包含了一个解指针(*)所以要对指针进行操作
例如:
typedef struct
{
int data[20];
int length;
}Sqlist;
Sqlist
*L;
L-lenth;
//同样是得到L中length的值
结构体成员运算符 : ( . )直接调用结构体中的某个成员
例如:
typedef struct
{
int data[20];
int length;
}Sqlist;
Sqlist L;
L.length; //直接调用L中length的值
L.data[3];
扩展资料:
结构体成员的点运算符(.)和箭头运算符(-)的区别:
相同点:两个都是二元操作符,其右操作符是成员的名称。
不同点:点操作符左边的操作数是一个“结果为结构”的表达式;箭头操作符左边的操作数是一个指向结构的指针。
如果一个函数的传入参数是结构体,且需要该结构体作为返回值的时候,必须采用指针传递的方式,其中对结构体赋值必须使用箭头运算符。
参考资料:
百度百科--
菜鸟教程-C++ 运算符
这主要得看a是什么类型,如果a是结构体变量(比如OS_MEM_DATA
a),那么就是a.b。
如果是结构体指针变量(如OS_MEM_DATA
*a),那么就是a-b。
a-b等价于(*a).b。
因为结构是一个集合,由若干成员构成,访问其成员就用下面这个形式:
结构变量名.成员名
举例如下:
struct person //定义结构类型
{
int weight,height;
float salary;
}
struct person zhangsan;//定义结构变量名
以下是访问结构成员:
zhangsan.height=176;
zhangsan.salary=6588;