结构体变量各个成员的表示方法 (*结构体指针变量).成员名 结构体指针变量->成员名 请问括号 10

结构体变量各个成员的表示方法(*结构体指针变量).成员名结构体指针变量->成员名请问括号里到底是哪部分可以省略?最好举个例子谢谢... 结构体变量各个成员的表示方法
(*结构体指针变量).成员名

结构体指针变量->成员名

请问括号里到底是哪部分可以省略?最好举个例子谢谢
展开
 我来答
AIEdison
2015-03-13 · TA获得超过162个赞
知道答主
回答量:65
采纳率:0%
帮助的人:45万
展开全部
如果已经定义了结构体,取名test,并且假设定义了结构体指针,取名*ptr
typedef struct
{
int a;
}STR; //定义结构体
STR test; // 定义结构体变量
STR *ptr;//定义结构体指针
ptr=&test;// 指针指向结构体变量

那么引用结构体里的成员a时
test.a
(*ptr).a
ptr->a
这三者是等价的
更多追问追答
追问
我见过一种a.name是什么情况
追答
变量名取名不同呗,test.a和a.name都是一个性质
lxmaint
2015-03-13
知道答主
回答量:53
采纳率:0%
帮助的人:18.6万
展开全部
没看明白你说的是什么,举个例子:
typedef struct struct0
{
int a;
int *b;

}MyStruTpye; //MyStruType 是自定义的结构体变量类型,可以用它来定义变量

//////////////////
MyStruType struMy1, *pstruMy2; //定义了两个结构体变量,一个是指针,一个是普通变量

//在初始化函数里,可以这样初始化
struMy1.a = 1;
struMy1.b = (int *)malloc(10);

pstruMy2 = (MyStruType*)(malloc(sizeof(MyStruType)));
pstruMy2->a = 2; //或者这样写:(*pstruMy2).a = 2;
pstruMy2->b = (int *)malloc(10); //或者这样写:(*pstruMy2).b = (int *)malloc(10);

//////
//pstruMy2是指针,在说明成员时只能用箭头 -> 表示。(*pstruMy2) 代表普通的变量,
//只是这个变量的地址是用PstruMy2指向的,用点 . 就可以了, 两者含义不一样,没啥省略
//不省略的。 再比如struMy1,也可以这样用指针的方式初始化或赋值:(&struMy1)->a = 1;
//malloc用完记得释放,用free
更多追问追答
追问
定义结构体变量和定义结构体指针的区别 

a.name
公式里是(*a).name
做题时看到a.name和a->name两种情况
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ff4dg1
2020-08-16
知道答主
回答量:19
采纳率:0%
帮助的人:1.2万
展开全部
本来懂了,被你搞懵逼了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式