
结构体变量各个成员的表示方法 (*结构体指针变量).成员名 结构体指针变量->成员名 请问括号 10
结构体变量各个成员的表示方法(*结构体指针变量).成员名结构体指针变量->成员名请问括号里到底是哪部分可以省略?最好举个例子谢谢...
结构体变量各个成员的表示方法
(*结构体指针变量).成员名
结构体指针变量->成员名
请问括号里到底是哪部分可以省略?最好举个例子谢谢 展开
(*结构体指针变量).成员名
结构体指针变量->成员名
请问括号里到底是哪部分可以省略?最好举个例子谢谢 展开
展开全部
如果已经定义了结构体,取名test,并且假设定义了结构体指针,取名*ptr
typedef struct
{
int a;
}STR; //定义结构体
STR test; // 定义结构体变量
STR *ptr;//定义结构体指针
ptr=&test;// 指针指向结构体变量
那么引用结构体里的成员a时
test.a
(*ptr).a
ptr->a
这三者是等价的
typedef struct
{
int a;
}STR; //定义结构体
STR test; // 定义结构体变量
STR *ptr;//定义结构体指针
ptr=&test;// 指针指向结构体变量
那么引用结构体里的成员a时
test.a
(*ptr).a
ptr->a
这三者是等价的
更多追问追答
追问
我见过一种a.name是什么情况
追答
变量名取名不同呗,test.a和a.name都是一个性质
展开全部
没看明白你说的是什么,举个例子:
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
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两种情况
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询